问:我的PL/SQL代码如下所示,其中提示“insert”出现问题。我检查了一下还是不知道问题出在哪里,请专家帮忙指点一下,谢谢! insert into row_chain_demo (col1,col256) values(1,’Hello World’); * ERROR at line 43: ORA-06550: line&nbs……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
问:我的PL/SQL代码如下所示,其中提示“insert”出现问题。我检查了一下还是不知道问题出在哪里,请专家帮忙指点一下,谢谢!
insert into row_chain_demo (col1,col256) values(1,'Hello World');
*
ERROR at line 43:
ORA-06550: line 43, column 13:
PL/SQL: ORA-00942: table or view does not exist
ORA-06550: line 43, column 1:
PL/SQL: SQL Statement ignored
declare
l_create_table_query varchar2(2000) default 'create table row_chain_demo (col1 number) segment creation immediate' ; l_alter_table_query varchar2(2000) ; l_column_name user_tab_columns.column_name%type default 'col' ;
begin
for x in (select *
from dual
where not exists (select null
from user_tables
where table_name = upper('row_chain_demo') ) ) loop
execute immediate l_create_table_query; end loop;
dbms_output.put_line (l_create_table_query);
for l_cntr in 2..256
loop
l_column_name := 'col' || l_cntr ;
l_alter_table_query := 'alter table row_chain_demo add ' || l_column_name || ' char(2000) ' ;
for x in (select *
from dual
where not exists (select null
from user_tab_columns
where table_name = upper('row_chain_demo')
and column_name = upper( l_column_name )
)
)
loop
execute immediate l_alter_table_query ;
end loop;
end loop;
commit;
insert into row_chain_demo (col1,col256) values(1,'Hello World');
end;
/
答:你创建的表不会动态地出现在编译时(compile time)里。任何模式对象的静态引用都需要在编译时中进行验证。而DML中动态表的静态引用语句必须是动态进行的。
作者
相关推荐
-
OpenWorld18大会:Ellison宣布数据库的搜寻和破坏任务
在旧金山举行的甲骨文OpenWorld 2018大会中,甲骨文首席技术官(CTO)兼创始人Larry Elli […]
-
ObjectRocket着力发展Azure MongoDB服务
MongoDB吸引了微软公司的注意力,微软公司计划针对运行于该公司2017年发布的Azure Cosmos D […]
-
数据库和数据仓库的区别在哪儿?
目前,大部分数据仓库还是用数据库进行管理。数据库是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。
-
如何使用服务来平衡Oracle RAC 数据库工作负载
为不同的应用程序配置不同的服务,DBA可以更有效地平衡集群工作负载,在Oracle RAC数据库环境下实现更好的应用程序性能。