我有一个如下的SQL语句:
...
const string sql = @"UPDATE PLATYPUS
SET DUCKBILLID = :NEWDUCKBILLID
WHERE PLATYPUSID IN (:ListOfInts)";
...
ocmd.Parameters.Add("ListOfInts", ??WhatNow??);
Run Code Online (Sandbox Code Playgroud)
如何提供逗号分隔的整数列表,可以是任何(合理的*)数量的值
有没有办法使用System.Data.OracleClient向IN子句添加参数.
例如:
string query = "SELECT * FROM TableName WHERE UserName IN (:Pram)";
OracleCommand command = new OracleCommand(query, conn);
command.Parameters.Add(":Pram", OracleType.VarChar).Value = "'Ben', 'Sam'";
Run Code Online (Sandbox Code Playgroud) 我将String数组(plcListchar)传递给Stored Procedure,我想在IN()子句中使用这个String数组.
我不能直接在IN()子句中使用plcListchar.让我展示一下我是如何在JAVA中创建plcListchar字符串数组的.
String array[] = {"o", "l"};
ArrayDescriptor des = ArrayDescriptor.createDescriptor("CHAR_ARRAY", con);
ARRAY array_to_pass = new ARRAY(des,con,array);
callStmtProductSearch.setArray(4, array_to_pass);
Run Code Online (Sandbox Code Playgroud)
用于装箱CHAR_ARRAY,
create or replace type CHAR_ARRAY as table of varchar2;
Run Code Online (Sandbox Code Playgroud)
我想在IN子句中使用plcListchar.以下是我的存储过程.
CREATE OR REPLACE PROCEDURE product_search(
status IN varchar2,
plcList IN varchar2,
i_culture_id IN number,
plcListchar IN CHAR_ARRAY,
status_name OUT varchar2,
culture_code OUT varchar2)
AS
CURSOR search_cursor IS
SELECT p.status_name, p.culture_code
FROM PRISM_ITEM_cultures@prism p
WHERE p.publishable_flag=1
AND p.isroll =0
AND status = '-1'
AND p.plc_status IN ( );
BEGIN
OPEN …Run Code Online (Sandbox Code Playgroud) 我需要将一个数组从C#.net应用程序传递给oracle存储过程.任何人都可以让我知道如何去做吗?另外,在将输入参数传递给存储过程时,我在C#中使用哪种OracleType类型?
仅供参考,我在C#app中使用System.Data.OracleClient.
谢谢.
嗨,我写了这段代码来创建一个程序,根据 if 条件返回一个布尔值,但是当我执行它时,我收到了这个错误:
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'DDPAY_SP'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
Run Code Online (Sandbox Code Playgroud)
这是我的程序
create or replace procedure DDPAY_SP (
donor_id dd_donor.iddonor%type,
pldgstatus out dd_pledge.idstatus%type,
monthplan out dd_pledge.paymonths%type,
ret out boolean)
IS
begin
select idstatus, paymonths into
pldgstatus, monthplan from dd_pledge
where iddonor = donor_id ;
if (pldgstatus = 10 AND monthplan …Run Code Online (Sandbox Code Playgroud)