由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - 一个奇怪的问题
相关主题
Oracle新手请教一个问题Oracle Group and Index question
很弱的Oracle问题How to change Default Buffer Size for Long Columns?(string size exceeds 1K)
editting .sql file problemHow to get SQL help in sqlplus?
not null in ms sqlSqlplus if the column numbers are too many and line too long
ORACLE VARCHAR2一问请问谁知道unix的oracle下如何打印Table啊?
Re: [转载] JDBC用完了oracle的large pool (memorfound a way to corrupt oracle on NT
better way to compare nullable columns? Error Code 01034?
请教三个Key的property,connect to an oracle server on anoter machine
相关话题的讨论汇总
话题: null话题: blank话题: oracle话题: column话题: string
进入Database版参与讨论
1 (共1页)
w*r
发帖数: 2421
1
Oracle的sqlplus里面使用''表示的blank string似乎会被自动翻译成null, 这样的话
我要test 一个 column是blank的话怎么写???='' !=''都不太对劲儿,
今天刚发现的,一直没有注意过这个问题
c*******e
发帖数: 8624
2
啥叫blank string?一个column是blank不是null么?

【在 w*r 的大作中提到】
: Oracle的sqlplus里面使用''表示的blank string似乎会被自动翻译成null, 这样的话
: 我要test 一个 column是blank的话怎么写???='' !=''都不太对劲儿,
: 今天刚发现的,一直没有注意过这个问题

w*r
发帖数: 2421
3
null和blank是不一样的, blank只是说是一个空字符串,但是NULL是空指针嘛,何况NULL
!=NULL, 但是''==''呀

【在 c*******e 的大作中提到】
: 啥叫blank string?一个column是blank不是null么?
c*******e
发帖数: 8624
4
什么交一个空字符串?我知道比如C里面initialize什么
相当于给了把地址指到了变量,但是不是很理解数据库里面
空字符串到底是什么?
我知道null是不能和null相等的
这么说吧,如果你想插入一个空字符串你怎么做?

NULL

【在 w*r 的大作中提到】
: null和blank是不一样的, blank只是说是一个空字符串,但是NULL是空指针嘛,何况NULL
: !=NULL, 但是''==''呀

w*r
发帖数: 2421
5
insert into t values('');

【在 c*******e 的大作中提到】
: 什么交一个空字符串?我知道比如C里面initialize什么
: 相当于给了把地址指到了变量,但是不是很理解数据库里面
: 空字符串到底是什么?
: 我知道null是不能和null相等的
: 这么说吧,如果你想插入一个空字符串你怎么做?
:
: NULL

M*****r
发帖数: 1536
6
You can use IS NULL/IS NOT NULL
On your original table:
If the column is defined as NOT NULL, you won't get NULL
If the column can have NULL, then, blank string is NULL (Oracle does the
conversion for a really long time)
You can also use nvl function, but may not be what you really want.

【在 w*r 的大作中提到】
: Oracle的sqlplus里面使用''表示的blank string似乎会被自动翻译成null, 这样的话
: 我要test 一个 column是blank的话怎么写???='' !=''都不太对劲儿,
: 今天刚发现的,一直没有注意过这个问题

c*******e
发帖数: 8624
7
你试试看是不是is null

【在 w*r 的大作中提到】
: insert into t values('');
c*******e
发帖数: 8624
8
this is clear, I am not familiar with oracle, hehe

【在 M*****r 的大作中提到】
: You can use IS NULL/IS NOT NULL
: On your original table:
: If the column is defined as NOT NULL, you won't get NULL
: If the column can have NULL, then, blank string is NULL (Oracle does the
: conversion for a really long time)
: You can also use nvl function, but may not be what you really want.

w*r
发帖数: 2421
9
我当然知道在oracle里面这个insert会被变成null, 这正是问题所在,TNND 这太烦了,
老爷偶要null的时候当然会把null给送去表里,你丫给我自动换什么呀,这个行为几乎
和所有其他的RDBMS都不一样!
造成的结果是如果有一个java function embeded在数据库里面,送去一个空字符的时候
就会跳出null exception, 你说丫的是不是很烦?
c*******e
发帖数: 8624
10
前面不是说了么,设成not null就会是''了

【在 w*r 的大作中提到】
: 我当然知道在oracle里面这个insert会被变成null, 这正是问题所在,TNND 这太烦了,
: 老爷偶要null的时候当然会把null给送去表里,你丫给我自动换什么呀,这个行为几乎
: 和所有其他的RDBMS都不一样!
: 造成的结果是如果有一个java function embeded在数据库里面,送去一个空字符的时候
: 就会跳出null exception, 你说丫的是不是很烦?

c*******e
发帖数: 8624
11
再说也有问题,不熟悉的人select *看一下
也不容易看出来哪个是null,哪个不是吧
我觉得你的想法比较奇怪

【在 w*r 的大作中提到】
: 我当然知道在oracle里面这个insert会被变成null, 这正是问题所在,TNND 这太烦了,
: 老爷偶要null的时候当然会把null给送去表里,你丫给我自动换什么呀,这个行为几乎
: 和所有其他的RDBMS都不一样!
: 造成的结果是如果有一个java function embeded在数据库里面,送去一个空字符的时候
: 就会跳出null exception, 你说丫的是不是很烦?

w*r
发帖数: 2421
12
设成not null也有问题,bulk insert 就出错了,bulk insert/sql loader就会把''解释
成null, 然后就有了constraint的问题,嘿嘿,这个设计反正是比较失败,string
literal ''和null本来就不是一回事儿,要仔细得区分开,哪有这种GP不通的设计,自动
把一个string literal给解释成null的?

【在 c*******e 的大作中提到】
: 前面不是说了么,设成not null就会是''了
c*******e
发帖数: 8624
13
你说你要''干啥?

【在 w*r 的大作中提到】
: 设成not null也有问题,bulk insert 就出错了,bulk insert/sql loader就会把''解释
: 成null, 然后就有了constraint的问题,嘿嘿,这个设计反正是比较失败,string
: literal ''和null本来就不是一回事儿,要仔细得区分开,哪有这种GP不通的设计,自动
: 把一个string literal给解释成null的?

w*r
发帖数: 2421
14
不是我要it, 是it 存在呀,都变成null让数据的load的时候有问题,那几十万条记录里
面有几行有'',为这个null还要改primary index, 要不就还要update一下,再说''变成
null传到function里面就会报错,烦不烦?

【在 c*******e 的大作中提到】
: 你说你要''干啥?
1 (共1页)
进入Database版参与讨论
相关主题
connect to an oracle server on anoter machineORACLE VARCHAR2一问
How to let oracle execute a procedure every hour?Re: [转载] JDBC用完了oracle的large pool (memor
how to connect to remote Oracle database, help me!!!better way to compare nullable columns?
How to start a Oracle database请教三个Key的property,
Oracle新手请教一个问题Oracle Group and Index question
很弱的Oracle问题How to change Default Buffer Size for Long Columns?(string size exceeds 1K)
editting .sql file problemHow to get SQL help in sqlplus?
not null in ms sqlSqlplus if the column numbers are too many and line too long
相关话题的讨论汇总
话题: null话题: blank话题: oracle话题: column话题: string