2012-07-10 52 views
1

我正在研究一個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

回答

0

格式爲:

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

相關問題