2016-07-30 32 views
0

我读了一本关于oracle pl/SQL的书。在书中有一节介绍如何使用集合,它有一些代码来引入varray。而且我像我的蟾蜍一样在书中键入它,但是当我编译它时,在第16行中它告诉我“列不允许在这里”。所以我不确定发生了什么事,请谁能帮助我?oracle pl/sql collection varray

create type first_name_t is varray (2) of varchar2(100); 
create type child_name_t is varray (1) of varchar2(100); 

create table family 
(
    surname varchar2(1000), 
    parent_names first_name_t, 
    children_name child_name_t 
); 

declare 
childen child_name_t := child_name_t(); 
parents first_name_t := first_name_t(); 

begin 
parents.extend (2); 
parents (1) := 'abc'; 
parents (2) := 'elssads'; 

childen.extend ; 
childen(1) := 'fea'; 


insert into family(surname, parent_names, childen_name) 
      values ('Assurty', parents, children); 
end; 
+0

观看错别字:申报值条款变量'childen'但'children';同时列名是'children_name',并且你插入'childen_name' – Husqvik

+0

当'values(...)'子句中的某个部分既不是字面也不是命名变量时,ORACLE抛出'ORA-00984:column not allowed here' 。在这种情况下,这是因为你的代码中存在拼写错误。编程是关于细节的。编译器对拼写和语法非常烦琐,所以我们必须学会阅读我们实际输入的内容*,而不是我们输入的内容。 – APC

+0

谢谢,我明白了@ husqvik –

回答

1

试试这个插入语句

insert into family values ('Assurty', parents,childen);