如何获取弹出窗口如果我们有任何截断或删除语句-在Toad或SQL Developer中运行脚本时

时间:2019-06-12 10:00:37

标签: oracle oracle-sqldeveloper toad

只要有人运行一个脚本(脚本由多个inserts,updates,delete语句组成),我有什么办法可以在显示器上弹出一个弹出窗口

多个语句的示例:

Update table set A=A where EmpId= 1;
Delete from Table where Emp_ID =2;

当我在脚本中运行此完整命令时,应触发一个弹出窗口,提示“我正在尝试删除操作及其生产数据库”。

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

请帮助我提出建议

1 个答案:

答案 0 :(得分:3)

尝试使用ACCEPT命令(Docs

enter image description here

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;

我认为您真正的解决方案是永远不要在生产中手动运行脚本。在大多数情况下,您甚至都不应连接生产。当您确实需要进行生产变更时,请发出变更单。这将包括您的脚本,该脚本将由DBA审核。然后将它安排好,并经过预先批准的过程。所有这些都将得到审核。

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

TL; DR简短答案-您的工具无法拯救您。他们只能帮忙。例如,SQLDev允许您在连接中添加颜色代码,以直观地提醒您所在的位置。

enter image description here