...
v_sql:=' select * from ( select rownum rn, SATELITE_ID, BEAM_ID,
RANDOM_ID, TIME_INTERVAL, UP_FREQUENCY,
DOWN_FREQUENCY, CONN_SIGNAL,BECALLED_TEL,
NVL2(INPUT_TIME, INPUT_TIME, tableName) test
from '||tableName||' t1 '|| fileterStr||' )
where rn>='||v_begin||' and rn<='||v_end;
open p_cursor for v_sql;
...
这是我存储过程的一个片段,因为表中INPUT_TIME字段(数据类型为Date)可能为空,如果为空,在VC中获取这个值的时候就会出错,所以我在存储过程中希望做到:如果INPUT_TIME为空,就用表的名字返回,填充test字段,这样就可以避免获取到的值为空。这个存储过程可以通过编译,但VC在调用这个存储过程的时候会出现运行时错误。这是为什么呢?有什么好的方法可以解决这个问题呢?有什么不同的方法可以避免返回NULL吗?
v_sql:=' select * from ( select rownum rn, SATELITE_ID, BEAM_ID,
RANDOM_ID, TIME_INTERVAL, UP_FREQUENCY,
DOWN_FREQUENCY, CONN_SIGNAL,BECALLED_TEL,
NVL2(INPUT_TIME, INPUT_TIME, tableName) test
from '||tableName||' t1 '|| fileterStr||' )
where rn>='||v_begin||' and rn<='||v_end;
open p_cursor for v_sql;
...
这是我存储过程的一个片段,因为表中INPUT_TIME字段(数据类型为Date)可能为空,如果为空,在VC中获取这个值的时候就会出错,所以我在存储过程中希望做到:如果INPUT_TIME为空,就用表的名字返回,填充test字段,这样就可以避免获取到的值为空。这个存储过程可以通过编译,但VC在调用这个存储过程的时候会出现运行时错误。这是为什么呢?有什么好的方法可以解决这个问题呢?有什么不同的方法可以避免返回NULL吗?
我觉得可以用decode试试。
select decode('abcd','abcd','1234') from dual