用创新的技术,为客户提供高效、绿色的驱动解决方案和服务

以科技和创新为客户创造更大的价值

公司新闻

sql存储过程返回数据集(sql存储过程返回值)

时间:2024-07-13

Oracle的存储过程能返回一个select查询结果集吗

See存储过程的错误在于: 在存储过程中使用了独立的select查询语句,而在Oracle的存储过程中是不允许进行独立的select查询的(就是单独的一个返回结果集的select语句。有SQL Server经验的用户会犯此种错误,因为SQL Server中没有这个限制)。其实,这也是PL/SQL语句块的限制。

与SQL Server的存储过程和函数均可以返回结果集不同的是,PL/SQL的存储过程和函数均不直接提供返回数据集的方法,但可以通过返回类型对象来实现返回数据集的效果。

也是习惯了SQL Server的存储过程中直接可以使用select语句输出结果集,但这个在Oracle中就行不通了。

oracle不是不能,而是采用的方法不同罢了。

select show_name from DOCS_REPORT_ITEM_CONFIG where item_id=1129;你这里就查了一个字段,固定了条件,你如果有多个item_id=1129的数据的话,得到的应该会是多条数据。

Oracle中如何写带条件的查询存储过程并返回查询结果集

创建包头,在其中声明类型和存储过程,类型应该引用游标;(2)创建包体,定义存储过程,执行查询,将查询得到的结果集以游标句柄的形式返回。

创建返回结果集的函数 SQL create or replace package pkg_HelloWorld as 2 -- 定义ref cursor类型 3 type myrctype is ref cursor;4 --函数申明 5 function getHelloWorld return myrctype;6 end pkg_HelloWorld;7 / 程序包已创建。

dbms_output.put_line(输出结果:||v_id||,||v_aname);10 fetch o_cur into v_id,v_aname;11 end loop;12 commit;13 end;14 / 输出结果:1,1 PL/SQL procedure successfully completed 你的那个ORA-01031: insufficient privileges,是权限不足的问题。

oracle不是不能,而是采用的方法不同罢了。

oracle 跟ms不一样。要返回表的记录数据,只能通过游标,或者自定义对象数组在存储过程中组装好后返回。

UPDATE或DELETE语句中的WHERE CURRENT OF子串专门处理要执行UPDATE或DELETE操作的表中取出的最近的数据。

Java接收sqlserver2000存储过程返回结果集组合

/*注意SQL语句的序号是从1个开始。*/注册返回参数第一个问号就是整个执行结果的返回值。

这个调用存储过程的Java方法是mapping的一个好例子。Mapping是对一个集上的操作进行抽象的方法。不是在这个过程上返回一个集,我们可以把操作传送进去执行。本例中,操作就是把ResultSet打印到一个输出流。

object SQL支持,record属于PL/SQL。

执行完该已储存过程后,将返回一个新的 JDBC TINYINT 值。方法 getByte 将把这个新值作为 Java byte 类型检索。

Java调用存储过程的方法是通过调用Connection的实例方法prepareCall,prepareCall方法返回对象用于填充存储过程的参数。prepareCall方法形参是调用存储过程的sql语句,此参数的语法格式如下:1{call(parameter-list)}其中,是存储过程名称,parameter-list是存储过程参数列表。