oracle可否设置字段值为NULL时转化为空字符串(不是针对某个字段)?

wxli 2003-08-22 03:29:37
原来用的是sql server的数据库。sql server数据库中,如果在字段中存入空字符串,则取出来的也是空字符串。(有系统提供的存储过程可以控制该功能)
现在由于老板要求,数据库转到oracle下面。发现字段中存入空字符串,取出来的却是null。
原来写的程序很多对数据库进行存取的,现在不可能对取出的东西逐个修改添加是否为null的判断。
问过公司的人,他们也没见到过这方面的资料,不知道oracle中是否有把整个数据库NULL值换成空字符串的方法。希望高手能指点一二!

另外,我想查一下oracle提供的系统存储过程,但不知道怎么查看,希望大虾提点一下,感激不禁!
...全文
2454 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxli 2003-08-25
  • 打赏
  • 举报
回复
:(
default '' 但取出来的是null,不是空字符串
zjhclf 2003-08-22
  • 打赏
  • 举报
回复
你自己去查找一下修改默认值的语句,欧忘了!
SPOOL D:\1.SQL
SELECT 'ALTER TABLE '||TABLE_NAME||' '||column_name||' default..自己写'
from cols where data_type in (varchar2,vachar,char..自己定);
spool off

@d:\1.sql

自己完善吧
hongganghc 2003-08-22
  • 打赏
  • 举报
回复
不懂,写个语句怎么有用?
wxli 2003-08-22
  • 打赏
  • 举报
回复
麻烦大哥把语句写出来,可以吗?
zjhclf 2003-08-22
  • 打赏
  • 举报
回复
是亚,顶一把!就算不用过程,写2个语句就搞定了,怎么可能让你一个一个去改,那不是太弱了?
jiezhi 2003-08-22
  • 打赏
  • 举报
回复
而且50個表根本不多,我負責的這個項目有二○○多個表
jiezhi 2003-08-22
  • 打赏
  • 举报
回复
哪里需要你逐個去改呀,花費一點時間寫個簡單的過程就ok了。
使用到的系統表:col
wxli 2003-08-22
  • 打赏
  • 举报
回复
因为项目非常大,表就有50多个,而且很多表有一两百字段,如果逐个修改的话,是一个非常浩大的工程!
而且我总觉得sql server中有这样的设置,oracle没道理比它弱啊
最好就是找到数据库设置,直接设置整个数据库的所有字段,让插入值为‘’的时候,取出来的值是‘’,而不是被强制成了NULL
zjhclf 2003-08-22
  • 打赏
  • 举报
回复
同意楼上的意见。
还可以从cols等视图中提取那些字符类型的列,批量生成脚本!
应该是个好方法!
jiezhi 2003-08-22
  • 打赏
  • 举报
回复
那你修改表,給予字段默認值

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧