我想知道應該在函數返回什麼數據類型時,返回值是在下面的代碼關聯數組:返回關聯數組
create or replace FUNCTION GET_DAYS
(
DAY_IDS IN VARCHAR2 ,
FromDate IN Date,
Todate IN Date
) RETURN split_tbl /*SYS.ODCINUMBERLIST*/ AS
BEGIN
DECLARE
D_LIST split_tbl;
TYPE weekdays IS TABLE OF number INDEX BY PLS_INTEGER;
D_Date split_tbl:=split_tbl();
j number:=1;
m number:=1;
K NUMBER:=1;
weeks number:=1;
t_weeks number:=0;
u number;
wday char(3);
f_date date:=fromdate;
BEGIN
D_LIST := SPLIT2(DAY_IDS);
WHILE j <= D_LIST.count loop
u:=nvl(d_list(j),0);
select count(*) into m from days where (day_id)=u;
if m=1 then
select day into wday from days where (day_id)=u;
t_weeks:=(next_day(To_date(todate,'DD-Mon-RRRR'),wday)-next_day(To_date(f_date,'DD-Mon-RRRR'),wday))/7;
while (next_day(To_date(todate,'DD-Mon-RRRR'),wday)-next_day(To_date(f_date,'DD-Mon-RRRR'),wday))/7 >=1
loop
d_date.extend(nvl(t_weeks,0));
D_DATE(K):=to_char(weeks);
f_date:=f_date+7;
weeks:=weeks+1;
K:=K+1;
end loop;
end if;
j:=j+1;
END loop;
K:=0;
/*
while k<=d_date.count loop
d_date.extend(2000);
if(d_date(K)=null) then
d_date.delete(K);
end if;
end loop;
*/
RETURN D_Date;
END;
END GET_DAYS;
我已經使用關聯數組D_List
已經創建了varchar2,但我需要它的數量。
什麼是接收部分。 PHP的oci8默認做到這一點。你也可以使用sys_refcursor或像CREATE OR REPLACE TYPE CUST_OBJ AS OBJECT這樣的用戶類型(/ *變量列表,如myid number,myval varchar2(255)等)。創建或替換類型OBJ_TBL是CUST_OBJ;'的表。然後使用oci,製作'OBJ_TBL'的自定義集合,綁定它,運行查詢和獲取結果。 – Cunning
該功能有什麼作用?函數的一些示例輸入和您的預期輸出是什麼?你有沒有試過返回'SYS.ODCINUMBERLIST'(並將'D_DATE'確定爲該類型)? 「SPLIT2」功能有什麼作用? – MT0
split2是返回varchar2中的關聯數組的另一個函數。 –