我正在尝试在Oracle 11g数据库中执行包和函数。我有以下代码:
CREATE OR REPLACE PACKAGE BODY reports_aml IS
FUNCTION aml_web_service(p_last_name varchar2 := Null,
p_first_name varchar2 := Null,
p_entity_name varchar2 := Null ,
p_user_name varchar2 := Null ,
p_accuracy varchar2 := Null,
p_counrty varchar2 := Null ) RETURN TVERIFY_RESULT
PIPELINED
IS
c_result result_cursor;
v_search_results t_table;
v_time_start DATE := SYSDATE;
v_exec_time VARCHAR2(20);
CURSOR cur (v_time_start in DATE ,v_search_results in t_table)
--...*
在PL / SQL开发人员中,经过测试,我有结果表,我需要将结果插入网格 VisualStudio 2017,ASP.NET。 我使用下一个C#代码
using System;
//....
using Oracle.ManagedDataAccess.Client;
using Oracle.ManagedDataAccess.Types;
protected void btn1_Click(object sender, EventArgs e)
{
List<PersonMin> pm = new List<PersonMin>();
string ConStr = "User Id=xxx; password=xxx; Data
Source=xxx; Pooling=false";
OracleConnection con = new OracleConnection();
con.ConnectionString = ConStr;
con.Open();
//Command
OracleCommand cmd = new OracleCommand("reports_aml.aml_rep1", con);
cmd.CommandType = CommandType.StoredProcedure;
//cmd.CommandType = CommandType.Text;
//add parameters
cmd.Parameters.Add("v_search_results", OracleDbType.RefCursor,
ParameterDirection.ReturnValue);
cmd.Parameters.Add("p_first_name", OracleDbType.Varchar2,
ParameterDirection.Input);
cmd.Parameters.Add("p_last_name", OracleDbType.Varchar2,
ParameterDirection.Input);
cmd.Parameters.Add("p_entity_name", OracleDbType.Varchar2,
ParameterDirection.Input);
cmd.Parameters.Add("p_user_name", OracleDbType.Varchar2,
ParameterDirection.Input);
cmd.Parameters.Add("p_accuracy", OracleDbType.Int16,
ParameterDirection.Input);
cmd.Parameters["p_first_name"].Value = fnTB.Text;
cmd.Parameters["p_last_name"].Value = lnTB.Text;
cmd.Parameters["p_accuracy"].Value =
Int16.Parse(a1DDL.SelectedValue);
cmd.Parameters["p_entity_name"].Value = null;
cmd.Parameters["p_user_name"].Value = null;
OracleDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
pm.Add(new PersonMin(Int32.Parse(dr[0].ToString()),
Int32.Parse(dr[1].ToString()), dr[2].ToString(), dr[3].ToString(),
dr[4].ToString(), dr[5].ToString(), dr[6].ToString(), dr[7].ToString(),
dr[8].ToString(), dr[9].ToString(), dr[10].ToString(),
dr[11].ToString(), dr[12].ToString()));
}
dr.Close();
con.Close();
我没有错误,但也没有结果 我不明白,怎么了
有帮助吗?