Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да използвате команди като DROP TABLE и т.н. в съхранена процедура

CREATE OR REPLACE PROCEDURE proc_name AS
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE SQL2005TEST.ABSENCEFULLDATADIFF_YESTERDAY';
.....
EXECUTE IMMEDIATE 'CREATE TABLE SQL2005TEST.ABSENCELATESTEND_YESTERDAY
                       AS SELECT * FROM SQL2005TEST.ABSENCELATESTEND';
....
....
EXCEPTION
  ....
  ....
END;

EXECUTE IMMEDIATE операторът изпълнява динамичен SQL оператор или анонимен PL/SQL блок в рамките на PL/SQL блок, или съхранена процедура, или пакет. Това се използва по-конкретно, ако трябва да изпълните DDL изрази като DROP , CREATE TABLE и т.н. Не можете да изпълнявате DDL команди от PL/SQL като DML изрази, така че единственият начин е динамичният SQL. Повече информация тук и тук .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Четене на времеви клейма при импортиране на данни в SQL Developer

  2. 4 начина за форматиране на число без десетични знаци в Oracle

  3. Актуализиране с групиране по

  4. Как да получа милиони от времевия печат от 1970 UTC в Oracle SQL?

  5. Задействайте алтернативи за две таблици, които трябва да се актуализират взаимно