2016-07-30 65 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);