问答详情
源自:2-2 PL/SQL引用型变量和记录型变量

引用变量时需要必须声明标识符

SQL> declare

  2  pname emp.ename%type;

  3  psal emp.sal%type;

  4  begin

  5  select enmae,sal into pname,psal from emp where empno=7782;

  6  dbms_output.put_line(pname||'xsis'||psal);

  7  end;

  8  /

pname emp.ename%type;

      *

第 2 行出现错误:

ORA-06550: 第 2 行, 第 7 列:

PLS-00201: 必须声明标识符 'EMP.ENAME'

ORA-06550: 第 2 行, 第 7 列:

PL/SQL: Item ignored

ORA-06550: 第 3 行, 第 6 列:

PLS-00201: 必须声明标识符 'EMP.SAL'

ORA-06550: 第 3 行, 第 6 列:

PL/SQL: Item ignored

ORA-06550: 第 5 行, 第 39 列:

PL/SQL: ORA-00942: 表或视图不存在

ORA-06550: 第 5 行, 第 1 列:

PL/SQL: SQL Statement ignored

ORA-06550: 第 6 行, 第 22 列:

PLS-00320: 此表达式的类型声明不完整或格式不正确

ORA-06550: 第 6 行, 第 1 列:

PL/SQL: Statement ignored


提问者:zhaoping55 2016-05-13 17:41

个回答

  • 慕的地7467143
    2019-05-01 15:23:37

    DECLARE
    --定义引用型变量
      PENAME EMP.ENAME%TYPE;
      PSAL   EMP.SAL%TYPE;
    
    BEGIN
      SELECT ENAME, SAL INTO PENAME, PSAL FROM EMP WHERE EMPNO = 7839;
      DBMS_OUTPUT.PUT_LINE(PENAME || '的薪水是' || PSAL);
    
    END;

    最好是大写

  • qq_骑着蜗牛去旅行_03471935
    2016-06-26 17:34:17

    你的这句写错了: select enmae,sal into pname,psal from emp where empno=7782;   是ename,不是enmae,写的时候要细心些

  • ls437088
    2016-05-14 12:13:47

    你没有建立表 ename