我想在vs08中用Oracle的存储过程访问数据库,可是由于是新手,对其语法不甚了解,跪求各位大侠帮帮忙
我这么用在pl/sql中编译貌似通过了,请问可以这样用吗?
create or replace procedure Pr_GetDriver
(
         @DriveID
)
as 
select * from Driverinfo where DriverID=@DriverID不行的话,应该怎么改呢? 
谢谢了。

解决方案 »

  1.   

    create or replace procedure Pr_GetDriver  ( 
        i_driveid  in  number, 
        o_cur out sys_refcursor 

    as 
    begin 
        open o_cur for select * from Driverinfo where DriverID= i_driveid ; 
    end Pr_GetDriver ; 
      

  2.   

    oracle过程里不允许直接使用SELECT 查询多行,要用游标
      

  3.   

    你不熟悉SQL 没有关系
    返回游标类型
    然后在程序里去做取出操作程序代码操作游标的你应该比较容易看懂和操作
      

  4.   

    一般PL/SQL块如果要输入参数的话用@xxx,如果你要写过程要指定入参
    create or replace procedure pro_name(parm1 in datetype,parm2 in datetype,...)
    as
    --声明部分,定义要使用的变量
    v_identifier datetype;
    begin
    --执行部分
      select xxx into v_identifier from tab_name where xxx=parm1;
    exception
    --异常处理部分
      ...
    end;如果返回的记录为单条,直接用into就可以,如果返回多条,就用游标,这个GOOGLE下有大把希望能帮到你