Sign-up....

动态SQL问题。

CREATE TABLE tb_test(a number);

CREATE OR REPLACE PROCEDURE proc_test AS

sqlcmd1 VARCHAR2(1024) := 'CREATE OR REPLACE VIEW v_test AS SELECT COUNT(*) times FROM tb_test';

sqlcmd2 VARCHAR2(1024) := 'CREATE TABLE tb_tb_test AS SELECT * FROM tb_test';

BEGIN

EXECUTE IMMEDIATE sqlcmd2;

END;

sql>EXEC proc_test;

现在的问题是:

sqlcmd2可以执行,sqlcmd1不可以执行(建表可以,建视图不可以)。为什么?

我查看了当前session具有的权限,有CREATE VIEW ,CREATE ANY VIEW权限。

谢谢。

[446 byte] By [msdn] at [2007-8-14 15:34:39]
# 1 Re: 动态SQL问题。

把错误提示贴出来先

drabit at 2004-3-19 11:48:33 >
# 2 Re: 动态SQL问题。

grant create procedure to user_name

welyngj at 2004-3-20 0:22:13 >
# 3 Re: 动态SQL问题。

应该把错误提示贴出来

ATCG at 2004-3-21 9:08:00 >
# 4 Re: 动态SQL问题。

估计当前没有权限,楼主所列出是否一个角色,在pl/sql是不认角色,只认系统权限.

grant create any view to user_name

beckhambobo at 2004-3-21 12:34:24 >

Oracle

All Classified