在PL/SQL Developer中为什么看不到自己建的表呢
在PL/SQL Developer中为啥看不到自己建的表呢?
PL/SQL Developer 执行以下PL/SQL语句:
执行中无错误发生,然后新开一个窗口查询自己新建的表:
什么结果也查询不到。直接使用创建表的语句:
这个倒是可以查询得到新建的表。为何用PL/SQL语句建表不成功呢?
------解决方案--------------------
看下all_tables下创建表的owner是谁
------解决方案--------------------
也有可能是lz打开了两个窗口,而这两个窗口连接的是不同的DB~
------解决方案--------------------
lz看看新开的窗口是不是连接的同一个DB~
------解决方案--------------------
function 可以执行这个吗? 换成procedure吧。
------解决方案--------------------
------解决方案--------------------
有可能是用户没有显式授权create table 的权限,好像有时候是会出现权限不足而无法创建表的情况的。
这时就需要要在Execute之前先grant create table to user;
------解决方案--------------------
o1,笑到我觉得为契机
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,笑到我觉得为契机