表test,有个字段a,char(30),一条记录是'你好后面有空格 '(他会后补空格到30位)
直接用sql查询select * from test where a='你好后面有空格',可以返回记录
但是放到存储过程中就没有记录open v_cur for
select * from test where a=v_a;其中v_cur是输出cursor,v_a是输入,值为你好后面有空格,后面不带空格
真急人啊,怎么没有记录啊另外不能用trim(a)这样子,表A是上千万上亿的数据量,用trim做查询要全表扫描,肯定死翘翘
直接用sql查询select * from test where a='你好后面有空格',可以返回记录
但是放到存储过程中就没有记录open v_cur for
select * from test where a=v_a;其中v_cur是输出cursor,v_a是输入,值为你好后面有空格,后面不带空格
真急人啊,怎么没有记录啊另外不能用trim(a)这样子,表A是上千万上亿的数据量,用trim做查询要全表扫描,肯定死翘翘
解决方案 »
- 线程同步使用sem_t信号量,为什么用pstack会使进程sleep?
- 关于rowid转换为数字的一个疑问
- SQLSERVER2005 DTS 数据导出问题(从SQLSERVER导入到ORACLE)
- 如何获取varchar2类型的最大值?
- 在线等触发器问题:为啥触发器表的字段传不到对应表?
- Delphi连ORACLE问题 如何在Delphi中运行Oracle的函数
- Oracle会把零程度字符串("")当作NULL,怎么办?
- oracle与sybase之间的数据库连接在 linux 系统下怎么做最方便
- oracle能动态地增加字段吗?(在线等候)
- oracle序时账
- 求个SQL,写不出...
- oracle function是否支持返回多个值
alter table test modify (a varchar2(30));
oracle1的文档上都是建议把char改成varchar2的
lz也改一下吧
不确定数据的长度用varchar2,节省空间。
现在都是说以空间换时间,char和varchar2用哪个好?高人指点一下