Great!!
It works fine after setting all needed privileges... thank you very much.
But I have another question. I want modified function CREATE_OBJ, I need give table name like parameter. So the function should be like this
CREATE OR REPLACE FUNCTION CREATE_OBJ (tName VARCHAR) RETURN VARCHAR IS
BEGIN
EXECUTE IMMEDIATE 'CREATE TABLE '+tName+' (id NUMBER)';
RETURN 'something';
END;
I'm sure this is not correct syntax.
Quote:
Originally posted by andrewst
That's correct, as the error says, you can't perform DDL (like CREATE TABLE) inside a query (like SELECT).
But you can do this:
SQL> VAR x VARCHAR2(100)
SQL> EXEC :x := CREATE_OBJ;
But really, I wouldn't create a FUNCTION to perform DDL like CREATE TABLE, I would just use a SQL Plus script.
|