公司一直用Sql Server,但是现在有个项目要用Oracle,刚开始用PL/Sql,都没什么人会。
用Oracle92的Enterprise Manager写了个存储过程如下
(
变量1 IN NUMBER
)
ISBEGIN
SELECT 字段1, 字段2, 字段3 FROM 表1WHERE 字段1 = 变量1;
END GETSCHOOLRECORD ;
提示:Select语句里缺少into字句 ?
不解
想问问哪位大侠有PL/SQL 的书。我的Email [email protected]

解决方案 »

  1.   

    在Oracle里边不能直接返回结果集.只能通过游标变量来返回.Type SYS_RefCursor IS REF CURSOR;CREATE OR REPLACE PROCEDURE authors_sel (
       变量1 IN Number,
       输出结果集1 in out Sys_RefCursor)
    IS
    BEGIN
       OPEN 输出结果集1 FOR
       SELECT *   FROM 表1
       where 字段1 = 变量1;
    END;
    /--这样你就能通过程序来调用返回结果集了.
      

  2.   

    declare var varchar2(10);
    beginselect a into var from dual;end;PL/SQL中SELECT语句只返回一行数据。如果超过一行数据,那么就要使用显式游标如果取得多行的话
    declare var varchar2(10);beginfor v_cursor in (select a from dual) loopvar:=v_cursor.a;end loop;end;
      

  3.   

    谢谢楼上两位。我的msn号码
    [email protected]