如何解决如下问题?

Jensen_Zou 2004-12-24 08:55:19
我怎样才能在一个字符串假如单引号,又如何取得?
例:teacher'day,liming'birthday
因为程序的需要我得先将单引号加入,又用replace()函数将他替换掉,谢谢!
...全文
89 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jensen_Zou 2004-12-24
  • 打赏
  • 举报
回复
可是如下过程创建没问题,调用时报错,请予以指教不胜感激:
--目的:重编译所有对象
create or replace procedure p_compile
is
v_str varchar2(200):='ALTER '||'''object_type'''||' '||'''object_name'''||' recompile;';
v_success varchar2(60):='compiled no successful!';
cursor mycursor is
select v_str from user_objects where object_type
in ('VIEW','TRIGGER','PROCEDURE','FUNCTION','PACKAGE','PACKAGE BODY');
--v_lstr varchar2;
--type tarr is varray(100) of number;
--tarry tarr :=tarr();
begin
for c_re in mycursor loop
execute immediate ltrim(rtrim(replace(c_re.v_str,'''')));
commit;
end loop;
v_success :='compiled successfully!';
dbms_output.put_line(v_success);
end p_compile;
SQL> conn zzy/030136@oemrep
已连接。
SQL> execute p_compile
BEGIN p_compile; END;

*
ERROR 位于第 1 行:
ORA-00940: 无效的 ALTER 命令
ORA-06512: 在"ZZY.P_COMPILE", line 13
ORA-06512: 在line 1


SQL>
chentony 2004-12-24
  • 打赏
  • 举报
回复
用 execute immediate 'alter '
Jensen_Zou 2004-12-24
  • 打赏
  • 举报
回复
在请问:我在存储过程中可以执行ALTER命令吗?如果可以该如何执行?谢谢!
GerryYang 2004-12-24
  • 打赏
  • 举报
回复
'teacher''day,liming''birthday'
用两个单引号表示一个单引号.
replace(feilds,'''')

可以去掉单引号
skystar99047 2004-12-24
  • 打赏
  • 举报
回复
'' 插入时两个单引号代表一个

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧