coracle存储过程返回值
1. oracle 中运行存储过程作为返回值
oracle可以使用out型参数返回值,例如:
sql">--查询某商品编号是否存在,返回查询状态
createorreplaceprocereproc_getGood
(
param_shopIdnumber,--商品编号
param_flagoutnumber--查询状态0不存在
)
as
declarev_countnumber(1);
begin
selectcount(*)intov_countfromtb_goodswhereshopid=param_shopid;
ifv_count=0then
param_flag:=0;
else
param_flag:=1;
endif;
end;
2. oracle 怎么接受存储过程返回值
所谓返回值,就是执行proc后,返回的变量,在程序设计中,设置个变量,直接接受proc的返回值即可
3. 在Oracle存储过程中查询的数据结果怎样返回
oracle
跟ms不一样。
要返回表的记录数据,只能通过游标,或者自定义对象数组在存储过程中组装好后返回。
4. oracle中在存储过程中怎么返回值
第一个问题
:
oracle没有inser
into
表
存储过程
的语句格式,所以这个需要你根据实际要求换种思路做吧。
第二个问题:
sqlserver
:'a'+char(10)+'b'
oracle:'a'
||
chr(10)
||
'b'
sqlserver中的
char函数
在oracle中是chr,参数和
返回值
是一样的。
5. Oracle通过存储过程如何正确返回数据集
typeFuxjResultSetisrefcursor; 还可以定义其他内容 endFuxjPackage; 再定义Oracle存储过程: (sDMinchar,sMCinchar,pRecCurinoutFuxjPackage.FuxjResultSet)asbeginupdatefuxjExamplesetmc=sMCwheredm=sDM;ifSQL%ROWCOUNT=0thenrollback;openpRecCurfor select'0'resfromal;elsecommit;openpRecCurfor select'1'resfromal;endif;end;和 (sDMinchar,sMCinchar,pRecCurinoutFuxjPackage.FuxjResultSet)asbegininsertintoFuxjExample(dm,mc)values(sDM,sMC);commit;openpRecCurfor select*fromFuxjExample;end;二、在Delphi中调用返回数据集的Oracle存储过程 可以通过TstoredProc或TQuery控件来调用执行返回数据集的存储,数据集通过TstoredProc或TQuery控件的参数返回源码天空 ,注意参数的DataType类型为ftCursor,而参数的ParamType类型为ptInputOutput。 使用TstoredProc执行UpdatefuxjExample的相关设置为: objectStoredProc1:TStoredProc
6. oracle中的存储过程如何返回查询到的多个值
oracle不是不能,而是采用的方法不同罢了。
可以使用一下方法创建返回结果集的调用:
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;
Package created.
SQL> CREATE OR REPLACE package body pkg_HelloWorld as
2 function getHelloWorld return myrctype
3 IS
4 return_cursor myrctype;
5 BEGIN
6 OPEN return_cursor FOR 'SELECT ''Hello'' AS a, ''World'' AS B FROM al';
7 return return_cursor;
8 END getHelloWorld;
9 end pkg_HelloWorld;
Package body created.
SQL> SELECT pkg_HelloWorld.getHelloWorld FROM al;
GETHELLOWORLD
--------------------
CURSOR STATEMENT : 1
CURSOR STATEMENT : 1
A B
---------- ----------
Hello World
7. oracle存储过程怎样返回查询出来的数据解决方案
create or replace procere p_cnt(
p_time in varchar2,---查询的条件
p_cur out SYS_REFCURSOR)---游标返回
IS
v_sql varchar2(1000) :='';
v_date varchar2(20);
BEGIN
v_date := replace(p_time, '-', '');---时间的格式转换
v_sql := 'select * from dapartment d where d.d_time ='''|| v_date||'''';
END;
OPEN p_cur FOR v_sql;
END p_cnt;
8. oracle存储过程可以返回内容吗
可以的。
返回一个游标社!
有俩种方法:
一种是声明系统游标,一种是声明自定义游标,然后后面操作一样,参数类型为
in out 或out
(1)声明个人系统游标.(推荐)
create or replace p_temp_procere
(
cur_arg out sys_refcursor; --方法1
)
begin
open cur_arg for select * from tablename;
end
调用
declare
cur_calling sys_refcursor;
begin
p_temp_procere(cur_calling); --这样这个游标就有值了
for rec_next in cur_calling loop
....
end loop;
end;
9. Oracle获取存储过程输出参数返回值
CREATE OR REPLACE PROCEDURE sap_po_test(id IN NUMBER,
p_message OUT VARCHAR2) AS
mycount number(4) := 0;
BEGIN
SELECT COUNT(*)
INTO mycount
FROM 表
WHERE id = p_id;
IF mycount > 0 THEN
p_message := 'S';
ELSE
p_message := 'E';
END IF;
RETURN;
END;
( ⊙ o ⊙ )啊!