在PL/SQL Developer中为啥看不到自己建的表呢?PL/SQL Developer 执行以下PL/SQL语句:SQL code--创建无参存
在PL/SQL Developer中为啥看不到自己建的表呢?
PL/SQL Developer 执行以下PL/SQL语句:
- SQL code
--创建无参存储过程CREATE OR REPLACE FUNCTION CreateTables RETURN VARCHAR2 IS --声明语句段 v_SQL varchar2(10000);BEGIN --执行语句段 /*Create by zjc 2012-06-29指标分解总表*/v_SQL := 'create table TB_TGT_DECOM_TABLES( id VARCHAR2(40) not null, prod_type NUMBER(4), designer VARCHAR2(40), year NUMBER(5), name VARCHAR2(40), pro_comment VARCHAR2(200) ) ';execute immediate v_SQL;commit;END CreateTables;declare str varchar2(1000); CURSOR tname_cursor IS SELECT table_name FROM user_tables where table_name like 'TB_TGT_%'; begin CreateTables(); END;
执行中无错误发生,然后新开一个窗口查询自己新建的表:
- SQL code
SELECT table_name FROM user_tables where table_name like 'TB_TGT_%';
什么结果也查询不到。直接使用创建表的语句:
- SQL code
create table TB_TGT_DECOM_TABLES( id VARCHAR2(40) not null, prod_type NUMBER(4), designer VARCHAR2(40), year NUMBER(5), name VARCHAR2(40), pro_comment VARCHAR2(200) )
这个倒是可以查询得到新建的表。为何用PL/SQL语句建表不成功呢?
[解决办法]
看下all_tables下创建表的owner是谁
[解决办法]
也有可能是lz打开了两个窗口,而这两个窗口连接的是不同的DB~
[解决办法]
lz看看新开的窗口是不是连接的同一个DB~
[解决办法]
function 可以执行这个吗? 换成procedure吧。
[解决办法]
[解决办法]
有可能是用户没有显式授权create table 的权限,好像有时候是会出现权限不足而无法创建表的情况的。
这时就需要要在Execute之前先grant create table to user;
[解决办法]
o1,笑到我觉得为契机
