0

pl/sql にプロシージャを記述します。vb.net でこの手順を呼び出します。データセットに pl/sql プロシージャの結果を入力したい。しかし、空のデータセットを取得しています。pl/sql で出力を確認できます。アプリケーションで oracle.dataaccess.client dll を使用しています。データセットで結果を取得するのに役立ちます。

 using  this dll
 Imports Oracle.DataAccess.Client
my code



 Dim orc1 As Oracle.DataAccess.Client.OracleConnection
 orc1 = New OracleConnection("Data Source=xxx;User Id=qqq;Password=123;")
 orc1.open()
Dim objcommand3 As New Oracle.DataAccess.Client.OracleCommand

objcommand3.Connection = orc1
objcommand3.CommandText = "SMSDND.pro_mod934"
objcommand3.CommandType = CommandType.StoredProcedure
Dim oraada As New OracleDataAdapter(objcommand3)
            'oraada .SelectCommand =objcommand3
Dim ods As New DataSet
oraada.Fill(ods)




procedure in pl/sql(using oracle toad)


CREATE  procedure SMSDND.pro_mod934
as
cursor c78 is 
SELECT smsdnd.phonenumbers_tbl.FLD_PHONENUMBER 
FROM smsdnd.phonenumbers_tbl
WHERE not exists (select smsdnd.smsdnd_tbl.FLD_PHONENUMBERS from smsdnd.smsdnd_tbl
where smsdnd.smsdnd_tbl.FLD_PHONENUMBERS = smsdnd.phonenumbers_tbl.FLD_PHONENUMBER and   smsdnd.smsdnd_tbl.FLD_OPSTYPE='A');
m  smsdnd.phonenumbers_tbl.FLD_PHONENUMBER %type;
BEGIN
 OPEN c78;
LOOP
 FETCH c78 INTO m;
EXIT when c78%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(''|| m);
END LOOP;
CLOSE c78;
 EXCEPTION WHEN OTHERS THEN 
  raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR-  '||SQLERRM);
end;
/
4

0 に答える 0