我把书上的例子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;

解决方案 »

  1.   

    第七行就是这个:
    (name   name_type,
      

  2.   


      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;
      

  3.   

    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类型?有回答的?