Answer Posted / pavan_1981
One can call DDL statements like CREATE, DROP, TRUNCATE,
etc. from PL/SQL by using the "EXECUTE IMMEDATE" statement.
Users running Oracle versions below 8i can look at the
DBMS_SQL package .
begin
EXECUTE IMMEDIATE 'CREATE TABLE X(A DATE)';
end;
NOTE: The DDL statement in quotes should not be terminated
with a semicolon.
Another way is One can also use the older DBMS_SQL package
(V2.1 and above) to execute dynamic statements. Look at
these examples:
CREATE OR REPLACE PROCEDURE DYNSQL AS
cur integer;
rc integer;
BEGIN
cur := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(cur, 'CREATE TABLE X (Y DATE)',
DBMS_SQL.NATIVE);
rc := DBMS_SQL.EXECUTE(cur);
DBMS_SQL.CLOSE_CURSOR(cur);
END;
/
Is This Answer Correct ? | 28 Yes | 4 No |
Post New Answer View All Answers
What are the differences between implicit and explicit cursors?
what are ddl statements in mysql? : Sql dba
How to use sql*plus built-in timers?
Write a query to display the current date in sql?
How exception handling is done in advance pl/sql?
How do I find duplicates in sql?
How do I find duplicates in the same column?
Is stored procedure faster than query?
How many types of keys are there in sql?
What is write ahead logging in sql server?
Explain the purpose of %type and %rowtype data types with the example?
How do you take the union of two tables in sql?
Which one is better subquery or joins?
How do I create an index in word?
How to read/write files from pl/sql?