如何通过ado参数对象将JavaScript数组传递给oracle存储过程

问题描述:

我正在研究一个asp + oracle web项目,并且我需要一个多用户选择函数。如何通过ado参数对象将JavaScript数组传递给oracle存储过程

1,使用JavaScript建立一个字符串数组:

var userArray = ["Simon","Sheng","Cheng"]; 

2,通过ADO参数对象传递给它,但我不知道怎么填参数ojbect:

var cmd = Server.CreateObject("ADODB.Command"); 
var param = cmd.CreateParameter("par",????????????)<--I don't know how to fill; 

3 ,在oracle中创建存储过程

create or replace package demo_pkg 
    as 
     type charArray is table of varchar2(255) index by binary_integer; 
     type t_cursor is ref cursor; 
    procedure p_test(p_id in charArray,p_cursor out t_cursor); 
    end; 

    create or replace package body demo_pkg 
    as 
    procedure p_test (p_id in charArray,p_cursor out t_cursor) 
    AS 
v_cursor t_cursor; 
    BEGIN 
open v_cursor for 
     select last_name from employees where last_name in (select * from table(cast(p_id as charArray))) 
p_cursor := s_test; 
    end; 
    end; 

谷歌3天后,我还在这里,谁能帮帮我?

+0

请关注你的问题是什么在这里引起你的问题?是否使用ADO将值传递给Oracle存储过程?如果是这样,请简化示例,删除不存在问题的部分(除非当然是全部三个部分),那么也许您应该将其分为多个问题 – 2012-07-10 21:58:24

+0

是,maby我先问Oracle商店程序。 – 2012-07-11 14:31:49

格式为:

CreateParameter(name, type, direction, size, value) 

你需要的值是:

adVarChar = 200 
AdArray = 0x2000 
adParamInput = 1 

你会调用它:

var param = cmd.CreateParameter('par', adVarChar + AdArray, adParamInput, 255, userArray) 
+0

我猜他正在使用传统的ASP和JScript作为服务器端语言。这意味着他可以使用所有的ASP对象,包括'Server'。 – Martijn 2012-07-11 11:26:20

+0

首先,是的,我使用经典ASP和JScript作为服务器端语言。 – 2012-07-11 14:15:20