create or replace procedure rbd_app_getarea (assrc varchar2)
is
begin
 SELECT  "province_name", "district_name"
 FROM "app_postcode"
 where "district"=assrc;
end;
错误(4,2): PLS-00428: 在此 SELECT 语句中缺少 INTO 子句

解决方案 »

  1.   


    create or replace procedure rbd_app_getarea (assrc varchar2)
    is
    begin
         SELECT province_name, district_name
         FROM app_postcode
         where district=assrc;
    end rdb_app_getarea;
    --你这单独的一个select语句没啥作用啊
    --你要么返回单条记录,
    SQL> set serveroutput on;
    SQL> declare
      2         v_empno scott.emp.empno%type;
      3         v_ename scott.emp.ename%type;
      4         v_job scott.emp.job%type;
      5         v_sal scott.emp.sal%type;
      6  begin
      7       select e.empno,e.ename,e.job,e.sal
      8       into v_empno,v_ename,v_job,v_sal
      9       from scott.emp e
     10       where e.empno='7788';
     11  
     12       dbms_output.put_line(
     13       'Information of 7788 are:'||
     14       'empno='||v_empno||
     15       ',ename='||v_ename||
     16       ',job='||v_job||
     17       ',sal='||v_sal
     18       );
     19  end ;
     20  /Information of 7788 are:empno=7788,ename=SCOTT,job=ANALYST,sal=3100PL/SQL procedure successfully completed
    ---------
    --要么返回多条记录,用游标
    SQL> declare
      2         cursor v_emp is
      3         select empno,ename,job,sal
      4         from scott.emp;
      5  begin
      6       for v_e in v_emp
      7       loop
      8           dbms_output.put_line(
      9           'empno='||v_e.empno||
     10           ',ename='||v_e.ename||
     11           ',job='||v_e.job||
     12           ',sal='||v_e.sal
     13           );
     14       end loop;
     15  end;
     16  /empno=7369,ename=SMITH,job=CLERK,sal=800
    empno=7499,ename=ALLEN,job=SALESMAN,sal=1600
    empno=7521,ename=WARD,job=SALESMAN,sal=1250
    empno=7566,ename=JONES,job=MANAGER,sal=2975
    empno=7654,ename=MARTIN,job=SALESMAN,sal=1250
    empno=7698,ename=BLAKE,job=MANAGER,sal=2850
    empno=7782,ename=CLARK,job=MANAGER,sal=2450
    empno=7788,ename=SCOTT,job=ANALYST,sal=3100
    empno=7839,ename=KING,job=PRESIDENT,sal=5000
    empno=7844,ename=TURNER,job=SALESMAN,sal=1500
    empno=7876,ename=ADAMS,job=CLERK,sal=1100
    empno=7900,ename=JAMES,job=CLERK,sal=950
    empno=7902,ename=FORD,job=ANALYST,sal=3000
    empno=7934,ename=MILLER,job=CLERK,sal=1300PL/SQL procedure successfully completed
      

  2.   

    在此 SELECT 语句中缺少 INTO 子句
    :select ……(列名) into ……(变量) from table(表名)
      

  3.   

    ----为什么要用""这样写的sql不美观
    create or replace procedure rbd_app_getarea (assrc varchar2)
    is
    begin
     SELECT province_name, district_name into assrc
     FROM app_postcode
     where district=assrc;
    end;
      

  4.   

    PROCEDURE 需要返回结果集的;
     INSERT INTO TABLENAME
    SELECT ..... FROM ......
      

  5.   

    在块中select 的数据是得不到展现的,你必须使用变量集来接收他.
    create or replace procedure rbd_app_getarea (assrc varchar2)
    is
    i_province_name 数据类型(长度);
    i_district_name 数据类型(长度);
    begin
     SELECT "province_name", "district_name" into i_province_name,i_district_name
     FROM "app_postcode"
     where "district"=assrc;
    end;
      

  6.   

    在块中select 的数据是得不到展现的,你必须使用变量集来接收他.
    create or replace procedure rbd_app_getarea (assrc varchar2)
    is
    i_province_name 数据类型(长度);
    i_district_name 数据类型(长度);
    begin
     SELECT "province_name", "district_name" into i_province_name,i_district_name
     FROM "app_postcode"
     where "district"=assrc;
    end;