ORACLE数据库存储过程,转义符问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE数据库存储过程,转义符问题相关的知识,希望对你有一定的参考价值。
我要的存储过程的SQL语句是:
delete from new_report_data t,new_user_id u
where t.user_id_index=u.user_id_index
and u.user_id_name in
('46cb80f2d77ce8f66cfb989e64bc0b61','445cefe016ee6a0f55856e0cac86aff0',
'103af1d15234daba68adb990cd42dc89','1dee142a8f7c268a47ec85c420712961',
'c7140a97b0d12c5125d7d8709174cd58','b9231c759be355ec90efc2e487f4435a',
'badc5300a4283f9b707487591c939987','206096931dcf537976fbe141faef55f4')
下面我创建了一个存储过程,建立的时候没有语法错误,但执行的时候出现了错误,是转义符搞错了吗?怎么改?
create or replace procedure delete_new_report_data
as
sql_de1 varchar2(200);
begin
sql_de1:='delete from new_report_data t,new_user_id u
where t.user_id_index=u.user_id_index
and u.user_id_name in
(''46cb80f2d77ce8f66cfb989e64bc0b61'',''445cefe016ee6a0f55856e0cac86aff0'',
''103af1d15234daba68adb990cd42dc89'',''1dee142a8f7c268a47ec85c420712961'',
''c7140a97b0d12c5125d7d8709174cd58'',''b9231c759be355ec90efc2e487f4435a'',
''badc5300a4283f9b707487591c939987'',''206096931dcf537976fbe141faef55f4'')
';
EXECUTE IMMEDIATE sql_de1;
COMMIT;
end;
sql_de1 varchar2(500);
oracle转义符
1.q
select q‘‘a%‘‘ from dual; ‘为分隔符
--注意当使用单引号为分隔符时,被转义的字符串中与转义单引号相连的不能时单引号
--例:select q‘‘xxx‘‘ from dual;这其中x不能为单引号
select q‘!a‘!‘ from dual;!为分隔符
开始分隔符为( [ { < 时,结束分隔符是其另一半,即) ] } >
以上是关于ORACLE数据库存储过程,转义符问题的主要内容,如果未能解决你的问题,请参考以下文章