日期:2014-05-16  浏览次数:21485 次

查询报ORA-1480错,求高人解答
EXEC SQL SELECT * FROM tb_sys_para ;  

printf("sqlca.sqlcode=%d",sqlca.sqlcode);

一个程序逻辑里边,在一个事务中,执行了很多EXEC SQL都没问题,当执行到上面一条这样的语句地方,就报-1480错。
我尝试将这个代码换一条别的语句,也报1480错,看起来,好像跟语句本身没关系,而是跟ORACLE某个环境有关系一样,
实在找不出原因,请大家帮忙看看哪里会有问题?

------解决方案--------------------
SQL code
ORA-01480 trailing null missing from STR bind value

Cause: A bind variable of type 5 (null-terminated string) does not contain the terminating null in its buffer.

Action: Terminate the string with a null character.

------解决方案--------------------
探讨
EXEC SQL SELECT * FROM tb_sys_para ;

我尝试将这个代码换一条别的语句,也报1480错,看起来,好像跟语句本身没关系,而是跟ORACLE某个环境……

------解决方案--------------------
感觉你的查询 SELECT * FROM tb_sys_para ; 结果中有空值,你尝试吧空值过来掉

如 

exec sql SELECT * FROM tb_sys_para where xxxx is not null