我试着给p_temp付了一个更新语句,结果可以执行,所以应该不是execute immediate的
问题。
问题。
解决方案 »
- XP 安装oracle 10g 时 出现“无法确定主机IP地址”异常
- 远程(几千公里外)有oracle 9i数据库,有上千万条数据记录,通过2M带宽传递,如何加快速度?
- 如何把有重复的数据只插入一次到另一张表中
- 求助:触发器的如何取变动行字段信息的问题
- SQL题一道,高手帮忙看看
- ORA-28545: error diagnosed by Net8 when connecting to an agent
- 向大家请教Oracle+Windows advance server+磁盘阵列柜的双机安装方法,不知哪位可以教我,或发个电子文档给我,谢谢!
- 通过培训学unix oracle好吗?请教!在北京,哪的培训机构比较好!
- 菜鸟问题:这个语句什么意思,在Oracle中,解答后立刻给分!!
- 每天定时导入文件名带日期的txt 文件到数据库表的问题
- 请教各位大侠,如果在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;