我有一个create table查询,一个更新查询,然后是drop table查询。我需要一次运行这三个查询。这样做的最佳方式是什么?
Example
1st Query: Create table A.
2nd Query: Update value in table A
3rd Query: Drop table A.
我不是逐个运行这三个查询,而是想通过PLSQL或其他方式运行它们。请帮忙。
答案 0 :(得分:4)
将3个查询彼此分开,用分号分隔:
SELECT *
FROM table_to_be_selected;
DROP TABLE the table_to_be_dropped;
TRUNCATE TABLE table_to_be_truncated;
您可以在字符串中连接这些查询并执行该字符串。
另一种方式是solution。
答案 1 :(得分:3)
为什么不创建PROCEDURE
?
E.g。
CREATE OR REPLACE PROCEDURE foo
IS
BEGIN
-- The create sentence goes here. For example:
-- EXECUTE IMMEDIATE
-- 'CREATE TABLE bar (...)';
-- The update sentence goes here
-- EXECUTE IMMEDIATE
-- 'UPDATE bar SET ...';
-- The drop/delete sentence goes here.
-- EXECUTE IMMEDIATE
-- 'DROP TABLE bar;'
END;
您可以使用以下方法进行测试:
SET serveroutput ON;
exec foo;
PROCEDURE
存储在数据库中,以便您以后可以使用它。
希望这有帮助。
答案 2 :(得分:2)
简单地将三个查询一个接一个地放在一个.sql文件中,每个语句后面都有分号,然后将它作为脚本执行(使用@scriptname.sql
在SQL * Plus提示符下或在TOAD / SQL中执行Developer [或等同物]使用其脚本执行功能)。