如何创建一个根据个人信息 删除 表中 个人信息。
想写一个包,主要用户根据传入的表名以及个人id删除个人信息。如果无法删除,要抛错。两个核心参数,一个表名,一个id作为参数传入。求教。
我来答
添加附件
收藏
复制链接
微信扫码分享

在小程序上查看
分享
添加附件
问题补充
2条回答
默认
最新
这玩意不是很简单么?只要了解存储过程最基本的结构就知道写了
create procedure test_delete(i_tablename varchar2(50), i_id varchar2(20)) is
l_sql varchar2(4000);
begin
l_sql := 'delete ' || dbms_assert.enquote_name(i_tablename) || ' where id=' || dbms_assert.enquote_literal(i_id) ;
execute l_sql;
commit;
exception
when others then
Raise_application_error(-20000, sqlerrm);
end;
/
复制
由于你表名是动态的,因此只能拼接动态sql,再加上防sql注入。
执行就是
begin
test_delete('表名','id值');
end;
/
复制
如果要创建包,也就是把这个过程放到包里就行了


打赏 0

回答交流
Markdown
一级标题
二级标题
三级标题
四级标题
五级标题
六级标题
添加图片链接
上传图片
导航目录
Markdown语法参考
请输入正文
提示
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~

50M
ORACLE 11.2.0 触发器 获取 空间属性的wkt格式,使用 sde.st_astext 函数,数据错乱
25M
求Cylance杀毒软件安装包测试数据库安全
25M
PostgreSQL ERROR: found xmin 2146512304 from before relfrozenxid 2146512317
10M
clickhouse 查询视图需要给基表的权限,有什么办法能场查视图不能查表呢?
10M
oracle apex是否可以使用nfc功能,以及录像保存功能
10M
视图v$sql_cs_selectivity 同一个RANGE_ID之下出现了同一个微词的重复记录。
10M
一个update 语句行锁升级 触发bug导致死锁myql宕机?请大佬帮忙分析下更具体原因
10M
时区升级
10M
Goldengate源端PDB,被克隆替代后,重新配置麻烦,有无其它方便,高效方法,恢复Goldengate?
10M
OGG使用COLMAP部分字段不同步问题