自定义记录报错:PLS-00103: Encountered the symbol "NAME_TYPE" when expecting one of the

theoffspring 2010-04-13 10:24:55
我把书上的例子copy进来报错:
ORA-06550: line 7, column 15:
PLS-00103: Encountered the symbol "NAME_TYPE" when expecting one of the following:

) ,

pl/sql:

DECLARE
TYPE name_type IS RECORD
(first_name VARCHAR2(15),
last_name VARCHAR2(30));

TYPE person_type IS
(name name_type,
street VARCHAR2(50),
city VARCHAR2(25),
state VARCHAR2(2),
zip VARCHAR2(5));

person_rec person_type;


DECLARE
TYPE name_type IS RECORD
(first_name VARCHAR2(15),
last_name VARCHAR2(30));

TYPE person_type IS RECORD
(name name_type,
street VARCHAR2(50),
city VARCHAR2(25),
state VARCHAR2(2),
zip VARCHAR2(5));

person_rec person_type;

BEGIN
SELECT first_name, last_name, street_address, city, state, zip
INTO person_rec.name.first_name, person_rec.name.last_name,
person_rec.street, person_rec.city, person_rec.state,
person_rec.zip
FROM student
JOIN zipcode USING (zip)
WHERE rownum < 2;

DBMS_OUTPUT.PUT_LINE ('Name: '||
person_rec.name.first_name||' '||person_rec.name.last_name);
DBMS_OUTPUT.PUT_LINE ('Street: '||person_rec.street);
DBMS_OUTPUT.PUT_LINE ('City: '||person_rec.city);
DBMS_OUTPUT.PUT_LINE ('State: '||person_rec.state);
DBMS_OUTPUT.PUT_LINE ('Zip: '||person_rec.zip);
END;
...全文
456 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
iqlife 2010-04-13
  • 打赏
  • 举报
回复
TYPE name_type IS RECORD
18 (first_name VARCHAR2(15),
19 last_name VARCHAR2(30));
20
21 TYPE person_type IS RECORD
22 (name name_type,
可以RECORD嵌套RECORD?
只知道常用的是TABLE类型嵌套RECORD类型?有回答的?
theoffspring 2010-04-13
  • 打赏
  • 举报
回复

1 DECLARE
2 TYPE name_type IS RECORD
3 (first_name VARCHAR2(15),
4 last_name VARCHAR2(30));
5
6 TYPE person_type IS
7 (name name_type,
8 street VARCHAR2(50),
9 city VARCHAR2(25),
10 state VARCHAR2(2),
11 zip VARCHAR2(5));
12
13 person_rec person_type;
14
15
16 DECLARE
17 TYPE name_type IS RECORD
18 (first_name VARCHAR2(15),
19 last_name VARCHAR2(30));
20
21 TYPE person_type IS RECORD
22 (name name_type,
23 street VARCHAR2(50),
24 city VARCHAR2(25),
25 state VARCHAR2(2),
26 zip VARCHAR2(5));
27
28 person_rec person_type;
29
30 BEGIN
31 SELECT first_name, last_name, street_address, city, state, zip
32 INTO person_rec.name.first_name, person_rec.name.last_name,
33 person_rec.street, person_rec.city, person_rec.state,
34 person_rec.zip
35 FROM student
36 JOIN zipcode USING (zip)
37 WHERE rownum < 2;
38
39 DBMS_OUTPUT.PUT_LINE ('Name: '||
40 person_rec.name.first_name||' '||person_rec.name.last_name);
41 DBMS_OUTPUT.PUT_LINE ('Street: '||person_rec.street);
42 DBMS_OUTPUT.PUT_LINE ('City: '||person_rec.city);
43 DBMS_OUTPUT.PUT_LINE ('State: '||person_rec.state);
44 DBMS_OUTPUT.PUT_LINE ('Zip: '||person_rec.zip);
45 END;
theoffspring 2010-04-13
  • 打赏
  • 举报
回复
第七行就是这个:
(name name_type,

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧