Oracle存储过程根据传入参数查询

Oracle存储过程中根据传入参数查询时无效

环境:Oracle11g

需求:根据传入的参数作为条件,查询相关数据

问题:条件无效

代码:

create or replace procedure XXX(associatedId in varchar,typeinfoid in varchar)

as

sheetcontent clob;

begin

select wm_concat(t.datasource) into sheetcontent from xly_associatedorder t

where t.associatedid = associatedId and t.typeinfoid = typeinfoid;

end XXX;

解决办法:

create or replace procedure XXX (associatedId in varchar,typeinfoid in varchar)

as

sheetcontent clob;

p1 varchar(50);

p2 varchar(50);

begin

  p1:=associatedId;

  p2:=typeinfoid;

select wm_concat(t.datasource) into sheetcontent from xly_associatedorder t

where t.associatedid =p1 and t.typeinfoid =p2;

end XXX;

时间: 2024-11-29 06:11:40

Oracle存储过程根据传入参数查询的相关文章

Oracle存储过程中传入参数,传出字符串

create or replace procedure getStr(usercode in varchar2,str out varchar2) is v_sql varchar2(100); isEdit varchar2(2); isAdmin varchar2(2); begin v_sql:='select isedit,isadmin from f_user_access where usercode=:usercode'; execute immediate v_sql into

2.PLSQL编写简单存储过程(传入参数,修改+打印)

一.表 二.编写存储过程 1 create or replace procedure raisesalary(aid in number)--aid:是修传入参数名 in:是表示传入参数(还有传出参数) number:是数据类型 2 as 3 salaryfirst EMPLOYEE.SALARY%type;--定义一个原有的薪资,类型为EMPLOYEE表中的SALARY字段类型 4 begin 5 select SALARY into salaryfirst from EMPLOYEE whe

Oracle IN 传递字符串参数查询失效

在写存储过程中有如下代码: FOR a IN ( SELECT a.svo_no,a.AUDIT_NO,a.order_id FROM TT_PI_MODEL_REL a ) LOOP SELECT COUNT(1) INTO V_FLAG FROM TT_PI_ORDER WHERE pi_id IN (a.order_id) AND REGULARIZA_DATE IS NOT NULL ; //执行若干操作 END LOOP; 其中  SELECT a.svo_no,a.AUDIT_NO,

mysql实现oracle存储过程默认参数

我们都知道oracle存储过程支持为参数设置默认值,这样即使存储过程升级,原来的调用也可以不受影响.但是mysql不支持,mariadb也没有支持(截止10.4也是如此).但是这一限制会导致升级麻烦重重.虽然如此,我们可以通过mysql 5.7/mariadb 10.2引入的json类型来变通实现.如下所示: drop function number_stats; CREATE FUNCTION number_stats(in_numbers JSON) RETURNS INTEGER NOT

Oracle存储过程包含三部分:过程声明,执行过程部分,存储过程异常。

Oracle存储过程可以有无参数存储过程和带参数存储过程. 一.无参程序过程语法 create or replace procedure NoParPro as ; begin ; exception //存储过程异常 ; end;         二.带参存储过程实例 create or replace procedure queryempname(sfindno emp.empno%type) as         sName emp.ename%type;         sjob emp

oracle——存储过程参数

oracle 存储过程类型: 1.in:输入类型,即由应用程序将数据传入oracle存储过程中:这种参数在存储过程中是只读参数,在存储过程中无法对该类型的参数进行修改: 2.out:输出参数,是在存储过程中对该值进行赋值,在程序中获取值. 3.in out:输入输出参数,兼具以上两种特性,但可读可写. 验证输入参数: 由于默认参数是输入类型的,在上图中,对BAcount参数赋值,报错. 解决办法: CREATE OR REPLACE PACKAGE body BAWQ_PROC_JGZX IS

java怎样将一组对象传入Oracle存储过程

java怎样将一组对象传入Oracle存储过程.须要注意的是jar包是有要求的,假设使用不当会导致仅仅有数字能传过去,字符串传只是去.假设是Oracle11g则须要选用例如以下的jar包,F:\app\Administrator\product\11.2.0\dbhome_1\jlib\orai18n.jar. D:\program\weblogic\oracle_common\modules\oracle.jdbc_11.2.0\ojdbc6.jar 样例例如以下: CREATE OR REP

java怎样将一个List传入Oracle存储过程

java怎样将一个List传入Oracle存储过程.样例例如以下: 数据库端建一个PL/SQL的数组. CREATE OR REPLACE TYPE tables_array AS VARRAY(100) OF VARCHAR2(32) ; drop table test purge; create table test ( name varchar2(32) ); create or replace procedure t_list_to_p(arr_t in tables_array) is

C#通过OleDb查询Oracle存储过程

using System; using System.Data; using System.Data.OleDb; /// <summary> /// 通过OleDb查询Oracle存储过程 /// </summary> /// <param name="id"></param> /// <returns></returns> public static DataTable getTodoList(string i