刚刚接触oracle,请大家帮忙,我有以下几个问题:
1.我想写一个纯粹查询语句的存储过程,执行此存储过程后返回查询结果的纪录集。
   例如:两个输入参数 start_id,end_id,目的是要查询表中id在这两个参数之间的所有数据
            select * from test where test.id > start and test.id < end_id
      这在sqlserver中是没有问题的,不过在oracle中编译的时候提示 :SELECT 语句中缺少 INTO 子句。我想问一下,oracle中查询的存储过程必须要有输出参数吗?查询结果是通过输出参数传出来的吗?如果不是,要想达到我的目的,此存储过程应该怎么写。如果是,请看第2个问题2.我是用vc++.net开发,程序中我用ado调用此存储过程,以前调用存储过程的时候把查询结果返回给纪录集就可以了。
  如:_RecordsetPtr pRst = pCmd->Execute(NULL,NULL,adCmdStoredProc);    
 如果oracle是通过输出参数把查询结果传出来的话,这么写肯定不行,那么在绑定输出参数的时候应该给输出参数什么类型呢?
谁有类似的程序例子,给一个好吗?

解决方案 »

  1.   

    是我没有说明白吗?
    就是想达到ms sql中这样的存储过程的作用:CREATE PROCEDURE test(@Start_ID  [numeric],@End_ID [numeric])
    AS 
    SELECT * FROM  tbl_test  where ID > @Start_ID  and ID < End_ID ORDER BY T_DataTime
    GO然后把结果集返回给ADO中的记录集就可以。请帮忙看一下,最好写一下存储过程和程序的实现
      

  2.   

    或者帮忙解决这个问题,告诉我一个调试存储过程和函数的方法,同样给分.
    我写了一个存储过程,不过我执行的时候看不到结果
    我在存储过程中写了
    dbms_output.put_line(v_id||v_data);//v_id 和v_data是表中的两列
    目的想让其输出结果。
    但是我在sql plus中执行execute test.PRO_TEST(1 ,6);//PRO_TEST是过程名,此过程就2个输入参数,我想在过程中输出结果,所以在过程中写的dbms_output
    执行后显示过程成功完成,不过没有任何显示
    怎样写才能让其看到其输出呢?或者有没有类似ms sql的查询分析器的工具,给介绍几个,谢谢!!!
      

  3.   

    谢谢dobetterthatnthink(饥不择食) 的回复
    你能不能说的详细点,是个工具的名称吗?在哪可以下载?
    你说的不会是oracle提供的sql plus这个工具吧,我觉得这个oracle自带的工具用着特别不方便
    请详细的说一下,好吗?
      

  4.   

    set serverouput on
    ...
    ....
    dbms_output.put_line
    oracle中查询出来的数据必须赋变量或游标