我试着给p_temp付了一个更新语句,结果可以执行,所以应该不是execute immediate的
问题。
问题。
解决方案 »
- 救命啊,Oracle Standby switchover 后,新从库(原主库)出现问题,要在新主库上重新建主从。是否有问题呢
- oralce 中的数据导入导出
- ORA-01008 有变量没关联
- 那位大侠详细讲讲alter system archive log current和alter system switch logfile的区别啊?
- 一个简单的更新语句的问题!急等!谢谢!修改
- 关于游标和重新编译包的问题,急!!!
- 同义词的问题
- 真是怪了, 数据库连接出错ORA-01033:!期待大家解决。
- 求教:SQL语句怎么写??
- 小问题一个.
- 请教各位大侠,如果在sql * plus里调看存储过程的内容
- 请问各位高手,这样的问题ORACLE能办吗?
例如 p_tablename = 'TABLE_NAME'
p_cellname = 'LAST_NAME' p_cellvalue = 'WANG' p_CASENO = 12 那么你的语句将是UPDATE TABLE_NAME set LAST_NAME = WANG where CASENO=12这样 LAST_NAME = WANG 就错了
在SQL语句中,字符是用单引号引起来的,存储过程里有没有转义字符啊?
p_temp:='UPDATE '||TO_CHAR(p_tablename)||' set '||TO_CHAR(p_cellname)||'='''||TO_CHAR(p_cellvalue)||''' where CASENO='''||TO_CHAR(p_CASENO)||'''';
试试。
p_temp:='UPDATE ' ¦ ¦TO_CHAR(p_tablename) ¦ ¦' set ' ¦ ¦TO_CHAR(p_cellname) ¦ ¦'=' ¦ ¦TO_CHAR(p_cellvalue) ¦ ¦' where CASENO=' ¦ ¦TO_CHAR(p_CASENO);
dbms_output.put_line(p_temp);
execute immediate(p_temp);
end ZS01WFAJCCCXLACPB_UPDATECELL;把字符串输出看看是否正确!或者直接用pl/sql developer 单步调试。
p_tablename varchar2,
p_cellname varchar2,
p_cellvalue varchar2
参数都是 varchar2的可以把 TO_CHAR全部去掉。
(
p_CASENO varchar2,
p_tablename varchar2,
p_cellname varchar2,
p_cellvalue varchar2
)
AS
p_temp varchar2(500);
BEGIN
p_temp:='Update '||p_tablename||' Set '||p_cellname||'=:1 Where CASENO=:2';
execute immediate p_temp using p_cellvalue,p_CASENO;
end;