在 PL/SQL 中创建匿名块

Posted

技术标签:

【中文标题】在 PL/SQL 中创建匿名块【英文标题】:Making anonymous block in PL/SQL 【发布时间】:2017-01-29 01:21:21 【问题描述】:

我需要构建一个匿名块来在配置表中插入值,其中包含以下列:config 和 value。

这是我需要插入的内容:

Config: ‘country’       Value: ‘Argentina’
Config: ‘moneysign’     Value: ‘$’
Config: ‘dateformat’    Value: ‘DD/MM/YYYY’

我必须验证 3 次插入是否正确。如果失败,请确定哪个失败并将数据库返回到启动脚本之前的一致状态。

【问题讨论】:

好的,你有什么问题? (听起来你只是在重复一项家庭作业并要求别人为你写。) 什么是匿名脚本?你会怎么称呼它? 您可能正在考虑 PL/SQL 块,但也许带有异常处理的简单过程可以在这里工作?无论如何,这不是一个问题,你甚至没有尝试自己写一些东西——就像上面的人说这不是一个家庭作业网站。 【参考方案1】:
BEGIN
  INSERT INTO CONFIG_TABLE (CONFIG, VAL) VALUES ('country', 'Argentia');
  INSERT INTO CONFIG_TABLE (CONFIG, VAL) VALUES ('moneysign', '$');
  INSERT INTO CONFIG_TABLE (CONFIG, VAL) VALUES ('dateformat', 'DD/MM/YYYY');
  COMMIT;
EXCEPTION
  WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE(SQLCODE||' -ERROR- '||SQLERRM);
    ROLLBACK;
END;

【讨论】:

除了隐藏错误堆栈、复制sqlcode 和隐藏故障之外,该异常处理程序在做什么? 我只是想演示一下PL/SQL的异常处理是如何工作的。 我不确定这个例子是不是这样。

以上是关于在 PL/SQL 中创建匿名块的主要内容,如果未能解决你的问题,请参考以下文章

匿名 PL/SQL 块检查异常

我可以在调用同一过程后将 PL/SQL 过程放在匿名块中吗?

使用来自 java 的值执行匿名 pl/sql 块文件

PL/SQL 匿名块已完成但未显示结果

Oracle_PL/SQL 匿名块

带有游标“匿名块已完成”的 PL/SQL 过程