Oracle 在toad或SQL developer中运行脚本时,如果有任何truncate或delete语句,如何获得弹出窗口

Oracle 在toad或SQL developer中运行脚本时,如果有任何truncate或delete语句,如何获得弹出窗口,oracle,oracle-sqldeveloper,toad,Oracle,Oracle Sqldeveloper,Toad,当任何人运行脚本(脚本由多个插入、更新、删除语句组成)时,是否有任何方法可以在显示屏上显示弹出窗口 多个语句的示例: Update table set A=A where EmpId= 1; Delete from Table where Emp_ID =2; 当我在脚本中运行complete-this-complete命令时,应该会触发一个弹出窗口,显示“我正在尝试删除操作&这是一个生产数据库” 当我运行sql脚本(如果脚本中有带有truncate或delete的语句)时,是否有任何方法可以

当任何人运行脚本(脚本由多个插入、更新、删除语句组成)时,是否有任何方法可以在显示屏上显示弹出窗口

多个语句的示例:

Update table set A=A where EmpId= 1;
Delete from Table where Emp_ID =2;
当我在脚本中运行complete-this-complete命令时,应该会触发一个弹出窗口,显示“我正在尝试删除操作&这是一个生产数据库”

当我运行sql脚本(如果脚本中有带有truncate或delete的语句)时,是否有任何方法可以获得弹出窗口?我是否可以在toad和sql Developer中获得弹出窗口

请帮我提建议

尝试接受命令()

我认为您真正的解决方案是永远不要在生产环境中手动运行脚本。在大多数情况下,您甚至不应该与生产联系在一起。当您确实需要对生产进行变更时,请发出变更单。这将包括您的脚本,该脚本将由DBA审查。然后,它将被安排,并通过预先批准的流程运行。所有这些都将被审计

这听起来可能“疯狂”,但大多数DBA在阅读您的问题时都会非常担心数据库中的数据

TL;简短回答博士-你的工具救不了你。他们只能帮忙。例如,SQLDev允许您向连接中添加颜色代码,以直观地提醒您所处的位置


非常感谢。实际上,对于初始加载,有时我们需要手动运行脚本。只是为了解决问题,如果我有任何错误的drop语句,那么为了安全起见,我们正在尝试解决方法。@如果不接受命令,是否有任何方法可以正确触发,以便如果soemone试图运行drop或truncate,只需触发warning或POPUI如果您花时间编写更新或truncate或drop…花时间编写Accept,这只是又一个保护措施。是的,您可以编写触发器,但每次添加触发器时,都要问自己,这真的有必要吗?它们经常被用作坏设计的创可贴@是的,可能是坏设计。但可能有些新人的脚本中可能没有包含ACCEPT命令。为了更安全,如果可能的话,使用触发器,这样如果有人突然运行带有“drop”或“truncate”的脚本,他们应该会得到一个弹出窗口,上面写着“尝试运行drop”。。这可能吗?@avinash你问过如何在这些工具中获得弹出窗口,我已经向你展示了。也许有些新人不应该在生产中运行脚本?
set pause on -- this will wait for user input between pages/queries
set pagesize 200
SELECT employees.first_name,
       employees.last_name,
       employees.salary,
       departments.department_name
  FROM employees
 INNER JOIN departments ON employees.department_id = departments.department_id
 ORDER BY salary desc, last_name asc;

ACCEPT upd CHAR PROMPT 'Cut Salary 10 percent? (y/n):  '  -- add this before bad stuff

update employees set salary = salary * 0.9;