一个权限的问题
我按书上创建了这样一个存储过程
CREATE PROCEDURE EXEC_DDL(DDL_STRING IN VARCHAR2)
IS
BEGIN
  EXECUTE IMMEDIATE DDL_STRING;
END EXEC_DDL;
后面我执行存储过程报错
BEGIN
    EXEC_DDL('CREATE TABLE DD(ID INT,FNAME VARCHAR2(100))');
END;
说我权限不足,
查看什么乱七八糟的堆栈说是这句
EXECUTE IMMEDIATE DDL_STRING;
说明下,我登陆的用户是DBA权限。求指教
------最佳解决方案--------------------可能需要显式授权,
sys用户登陆,
然后
grant create table to username;
------其他解决方案--------------------加上这个就好了authid current_user
 CREATE OR REPLACE PROCEDURE EXEC_DDL(DDL_STRING IN VARCHAR2) authid current_user
 IS
 BEGIN
   EXECUTE IMMEDIATE DDL_STRING;
 END EXEC_DDL;
------其他解决方案--------------------你这个dba用户是在哪个表空间上建的?
------其他解决方案--------------------/*第1步:创建临时表空间  */
create temporary tablespace user_temp  
tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf' 
size 50m  
autoextend on  
next 50m maxsize 20480m  
extent management local;  
/*第2步:创建数据表空间  */
create tablespace DC_KTR
datafile 'E:\oracle\product\10.2.0\oradata\orcl\dc_ktr.dbf' 
size 5000m  
autoextend on  
next 50m maxsize 20480m  
extent management local;  
 
/*第3步:创建用户并指定表空间  */
create user username identified by password  
default tablespace user_data  
temporary tablespace user_temp;  
 
/*第4步:给用户授予权限  */
grant connect,resource,dba to username;  
按这个过程创建的