ORACLE创建一个存储过程(删除指定数据)

ORACLE原语句是这样的:deletefromreport_datetwheret.address='广东省'我创建的存储过程是这样写的:createorreplace... ORACLE原语句是这样的:delete from report_date t where t.address='广东省'

我创建的存储过程是这样写的:
create or replace procedure delete_new_report_data
as
sql_dl varchar2(200)
begin
sql_dl='delete from report_data t where t.address in ('广东省')'
EXECUTE IMMEDIATE sql_dl;
end;
但提示错误,是哪里错了?
这个要怎么来创建存储过程?
展开
 我来答
liangzain79
2014-12-03 · TA获得超过1234个赞
知道小有建树答主
回答量:866
采纳率:82%
帮助的人:256万
展开全部
sql_dl='delete from report_data t where t.address in ('广东省')'

这行双重单引号,你不觉得有问题吗?需要转义一下。

还有个问题,你的这条sql明明可以不用in的,是还有别的省份没写进来吗?如果没有别的省份,建议使用=而不要用in,因为in与=的性能差距可是很大的,数据量越大,性能差距越明显。
今至电子科技有限公司
2024-08-23 广告
数据库备份是确保数据安全与业务连续性的关键环节。我们上海今至电子科技有限公司高度重视数据保护,定期执行全面的数据库备份策略。这包括使用先进工具和技术,对关键业务数据进行自动化备份,并存储在安全可靠的外部存储介质或云端。通过定期验证备份的完整... 点击进入详情页
本回答由今至电子科技有限公司提供
殇忄路
2014-12-03 · TA获得超过560个赞
知道小有建树答主
回答量:478
采纳率:81%
帮助的人:325万
展开全部
CREATE OR REPLACE PROCEDURE DELETE_NEW_REPORT_DATA AS
  SQL_DL VARCHAR2(200); --;忘记了
BEGIN
  SQL_DL = 'delete from report_data t where t.address in ('' 广东省 '')' ;--;忘记了 ''''
  EXECUTE IMMEDIATE SQL_DL;
END;
追问

追答
CREATE OR REPLACE PROCEDURE DELETE_NEW_REPORT_DATA AS
  SQL_DL VARCHAR2(200); --;忘记了
BEGIN
  SQL_DL := 'delete from report_data t where t.address in ('' 广东省 '')' ;--;忘记了 ''''  =换成:=
  EXECUTE IMMEDIATE SQL_DL;
END;

 我去 错误比我想的还多

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lmonkey
2020-12-25 · 教育领域创作者
个人认证用户
lmonkey
采纳数:69 获赞数:176

向TA提问 私信TA
展开全部

MySQL教程4 MySQL8运算符、函数、存储过程及新增数据类型 17.之创建带有IN和OUT参数的存储过程 学习猿地

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
李坏aaa
2014-12-03 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:194
采纳率:0%
帮助的人:79万
展开全部
广东省那行,最后是不是少个分号?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式