日期:2014-05-17  浏览次数:20973 次

请教一下oracle里面字符串相加(连接)的问题
我的存储过程里面这句话总是执行得不到预期的结果。
变量都已经定义过,编译通过。
就是执行到这里的时候出错得不到结果
v_USERCODE   :=   v_USERCODE|| ', '||v_TEMP;
我就是想把v_USERCODE累加一下,用 ', '分隔。
请问应该怎么写。一定要用CONCAT吗?   '|| '的作用和CONCAT有多大区别呢?

还有另外一个问题。
我初始定义一个变量   v_TEMP   varchar2(5)   := ' ';
这样定义他为 ' ',但是在后面的判断
IF   v_TEMP <> ' '   THEN
    ……
END   IF;
这个总是会执行到IF里边去。不知道怎么回事,我并没有对其进行赋值操作。

先谢过了!

------解决方案--------------------
错误贴出来,看看哪里报错了。

v_TEMP varchar2(5) := ' ';

oracle会认为是赋给了值:null

------解决方案--------------------
用length( v_TEMP)> 0 判断

v_USERCODE := v_USERCODE|| ', '||v_TEMP;
之前先对 v_USERCODE 初始化
v_USERCODE:= ' ';
用pl/sql developer 可以调试!
------解决方案--------------------
Oracle的CONCAT()只允许两个参数;换言之,一次只能将两个字串串连起来。不过,在Oracle中,我们可以用 '|| '来一次串连多个字串。