2016-07-29 35 views
0
create or replace procedure nestedTableColumnDemo is 
    --i have tried to create netsed table 
    TYPE address_nest1 is TABLE OF varchar2(50);  

    --using varchar i tried to create a table but it gives an error i have no idea why. 
    var1 varchar2(100); 
begin 

    --this is where i created the table using a variable var1 
    var1:='create table customer_info(name varchar2(50),postal_address address_nest1) nested table postal_address store as postal_address_tab';   
    execute immediate var1; 

end nestedTableColumnDemo; 

execute nestedTableColumnDemo; 

当我尝试执行此它显示一个错误,但没有创建表。我试图朗姆酒这个过程,但看起来像它不会comile

+0

Oracle给您提供哪个错误? –

+0

它说无效的数据类型,确切的错误是:ORA-00902:无效的数据类型 ORA-06512:在 “CS457_16610.NESTEDTABLECOLUMNDEMO”,8号线 ORA-06512:在line 1 00902. 00000 - “无效数据类型” – arfa

回答

0
CREATE OR REPLACE TYPE address_nest1 IS TABLE OF VARCHAR2(10) 
/ 

create or replace procedure nestedTableColumnDemo is --i have tried to create netsed table 
    var1 varchar2(200);--using varchar i tried to create a table but it gives an error i have no idea why. 
    begin 
    var1:='create table customer_info 
    (name varchar2(50), 
    postal_address address_nest1) 
    nested table postal_address store as postal_address_tab'; --this is where i created the table using a variable var1 
    execute immediate var1; 

    end nestedTableColumnDemo; 
    /

    execute nestedTableColumnDemo; 
    /

This Works。

+0

是的,但它表示无效的数据类型。它可能必须是它不能识别的postal_address address_nest1 – arfa

+0

尝试在过程外创建类型address_nest1。 CREATE OR REPLACE TYPE address_nest1 IS TABLE VARCHAR2(10) /然后运行程序 –

+0

它有什么不同?只是出于好奇 – arfa

相关问题