SQL> EXEC exec stp_inquire_user_information;
BEGIN exec stp_inquire_user_information; END;           *
ERROR 位于第 1 行:
ORA-06550: 第 1 行, 第 12 列:
PLS-00103: 出现符号 "STP_INQUIRE_USER_INFORMATION"在需要下列之?
:=
. ( @ % ;
符号 ":=" 被替换为 "STP_INQUIRE_USER_INFORMATION" 后继续。

解决方案 »

  1.   

    FOR record_id in cursor_emp loop
          v_USER_FNAME :=  record_id.FNAME;--需要使用你的遊標
          IS_SQL_STR := 'insert into inquire_answer(USER_ACCOUNT) values('''||v_USER_FNAME||''')';
          execute immediate IS_SQL_STR;
      end loop; 
     CLOSE cursor_emp;--個人認為初學的時候,使用遊標還是使用
      open cursor_name;
      loop
           fetch cursor_name into 變量;
           exit when cursor_name%notfound;
           ...........
      end loop;
      close cursor_name;
      這樣的格式,寫麻煩一些,但不會出錯
      

  2.   

    根据您的提示改成了: as
     v_USER_ACCOUNT VARCHAR2(20);
     v_ADMIN_ACCOUNT VARCHAR2(10);
     v_USER_FNAME VARCHAR2(10);
     v_USER_MNAME VARCHAR2(10);
     v_USER_LNAME VARCHAR2(10);
     v_CTYPE VARCHAR2(10);
     v_CNO VARCHAR2(20);
     v_PHONE VARCHAR2(20);
     v_EMAIL VARCHAR2(50);
     v_TIME DATE;
     v_STATE VARCHAR2(10);
     v_DEPARTMENT_NAME VARCHAR2(40);
     v_row employee%rowtype;
     
     IS_SQL_STR    VARCHAR2(255);
     
    CURSOR cursor_emp IS SELECT * FROM BARRY.EMPLOYEE; 
    BEGIN 
    execute immediate 'create table barry.inquire_answer(
                        USER_ACCOUNT VARCHAR2(20),
                        ADMIN_ACCOUNT VARCHAR2(20),
                        USER_FNAME VARCHAR2(10),
                        USER_MNAME VARCHAR2(10),
                        USER_LNAME VARCHAR2(10),
                        CTYPE VARCHAR2(10),
                        CNO VARCHAR2(20),
                        PHONE VARCHAR2(20),
                        EMAIL VARCHAR2(50),
                        TIME DATE,
                        STATE VARCHAR2(10),
                        DEPARTMENT_NAME VARCHAR2(40))';
                                       
      commit;
      
      open cursor_emp;
      loop
           fetch cursor_emp into v_row;
           exit when cursor_emp%notfound;
           v_USER_FNAME :=  v_row.FNAME;
           IS_SQL_STR := 'insert into inquire_answer(USER_ACCOUNT) values('''||v_USER_FNAME||''')';
          execute immediate IS_SQL_STR;
      end loop;
      close cursor_emp;
     exception
     when others then
         rollback; end stp_inquire_user_information;可是还是提示出错:SQL> EXEC exec stp_inquire_user_information;
    BEGIN exec stp_inquire_user_information; END;           *
    ERROR 位于第 1 行:
    ORA-06550: 第 1 行, 第 12 列:
    PLS-00103: 出现符号 "STP_INQUIRE_USER_INFORMATION"在需要下列之一?
    :=
    . ( @ % ;
    符号 ":=" 被替换为 "STP_INQUIRE_USER_INFORMATION" 后继续。
      

  3.   

    你的執行語句寫錯了,多加了一個exec
    exec stp_inquire_user_information;