请教一下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中,我们可以用 '|| '来一次串连多个字串。