我把书上的例子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;
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;
(name name_type,
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;
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类型?有回答的?