create or replace package body gn_grxq is
procedure gn_grxq_p(dtstr in character
, wkno out tworkno
, wkname out tname
, dpname out tdepname
, stname out tstaname
, tstype out ttype
, tssize out tsize
, tnum1 out tnum
, tnx1 out tnx)
is
cursor cur_gr is
select t.sca_workno wkno
,t.sca_worknamewkname
,dp.dep_name dpname
, st.sta_name
stname
,tp.sty_type tstype
,tp.sty_size
tsize
,pt.spu_number tnum1
,mod(CInt(Left(dtstr, 4)) - to_number(to_char(p.wkq_indate,'YYYY')),2) tnx1
from llmpublic.llm_dept dp
,llmgn.sc_candw t
,llmpublic.llm_worknokq p
,llmgn.sc_put pt
,llmgn.sc_type tp
,llmpublic.LLM_STATION st
where trim(dp.dep_id)=trim(p.wkq_part)
and trim(st.sta_id)=trim(p.wkq_station)
and trim(tp.sty_typeno)=trim(t.sca_typeno)
and trim(tp.sty_type)=trim(pt.spu_type)
and trim(pt.spu_part)=trim(p.wkq_part)
and trim(pt.spu_station)=trim(p.wkq_station)
and trim(p.wkq_workno)=trim(t.sca_workno)
and to_date('||dtstr ||','yyyy/mm/dd')>= t.sca_outdate
order by p.wkq_part,p.wkq_station;
singleperson cur_gr%rowtype;
percount NUMBER DEFAULT 1;
BEGIN
--cur_gr.open;
LOOP
fetch cur_gr into singleperson
exit when cur_gr%notfound;
wkno(percount) := singleperson.wkno;
wkname(percount) := singleperson.wkname;
dpname(percount) := singleperson.dpname;
stname(percount) := singleperson.stname;
tstype(percount) := singleperson.tstype;
tssize(percount) := singleperson.tssize;
tnum1(percount) := singleperson.tnum1;
tnx1(percount) := singleperson.tnx1;
percount := percount + 1;
END LOOP;
-- cur_gr.close;
END;
END gn_grxq;
包编译通过了,没有报错。可是在VB。NET里怎么调用啊。
Dim OleCnnDB As New OleDbConnection("Provider=OraOLEDB.Oracle.1;Password=llmgnmis;Persist Security Info=True;User ID=llmgn;Data Source=dev920_192.168.143.4;"
OleCnnDB.Open()
Dim OleCm As New OleDbCommand("{call gn_grxq.gn_grxq_p({txtdt.text,{resultset1,wkno,wkname,dpname,stname,tstype,tsize,tnum1,tnx1}})}", OleCnnDB)
OleCm.CommandType = CommandType.Text
Dim ds As New DataSet()
Dim Adapter As New OleDbDataAdapter(OleCm)
Adapter.Fill(ds) '''此处报错啊。
OleCm.Connection.Close()
报未知的错误。帮我看下,调用的语法是不是有问题啊?
|