#oracle #visual-studio #parameters #plsql
#Oracle #visual-studio #параметры #plsql
Вопрос:
Спецификация пакета:
CREATE OR REPLACE PACKAGE TestArea
AS
PROCEDURE DeleteTWCBLUSGProcessTable;
PROCEDURE PrepTWCBLUSGProcessTable(sDate IN VARCHAR2);
END TestArea;
Тело пакета:
CREATE OR REPLACE PACKAGE BODY MROBINSON28518.TestArea
AS
PROCEDURE DeleteTWCBLUSGProcessTable
IS
BEGIN
DELETE FROM MROBINSON28518.TWCBLUSG_PROCESSING;
END DeleteTWCBLUSGProcessTable;
PROCEDURE PrepTWCBLUSGProcessTable(sDate IN VARCHAR2)
IS
BEGIN
INSERT INTO mrobinson28518.TWCBLUSG_Processing
(
BillDate,
UBR_CARRIER,
UBR_BILL_GRP,
UBR_DIV,
UBR_EXCHANGE,
UBR_JUR,
UBR_EXCH_CARR,
UBR_DATE,
UBR_JDATE,
UBR_RATE_PD,
UBR_ELEMENT,
UBR_CALL,
UBR_TYPE,
UBR_QTY,
UBR_RATE,
UBR_AMOUNT,
UBR_MILEAGE,
UBR_OWN_PCT,
UBR_POP_CLLI,
UBR_FILLER)
SELECT
sDate,
A.UBR_CARRIER,
A.UBR_BILL_GRP,
A.UBR_DIV,
A.UBR_EXCHANGE,
A.UBR_JUR,
A.UBR_EXCH_CARR,
A.UBR_DATE,
A.UBR_JDATE,
A.UBR_RATE_PD,
A.UBR_ELEMENT,
A.UBR_CALL,
A.UBR_TYPE,
A.UBR_QTY,
A.UBR_RATE,
A.UBR_AMOUNT,
A.UBR_MILEAGE,
A.UBR_OWN_PCT,
A.UBR_POP_CLLI,
A.UBR_FILLER
FROM EUR_TWCBLUSG A;
END PrepTWCBLUSGProcessTable;
END TestArea;
Код Visual Studio:
private void btnExecute_Click(object sender, EventArgs e)
{
OracleConnection oCnt = new OracleConnection("Data Source=XXXX;User Id=XXXXXX;Password=XXXXXXXX");
OracleCommand oCmd = new OracleCommand();
try
{
oCmd.Connection = oCnt;
oCmd.CommandType = CommandType.StoredProcedure;
oCmd.CommandText = "TestArea.PrepTWCBLUSGProcessTable";
oCmd.Parameters.Add(
new OracleParameter()
{
ParameterName = "sDate",
OracleType = System.Data.OracleClient.OracleType.VarChar,
Direction = ParameterDirection.Input
}
);
oCnt.Open();
oCmd.ExecuteNonQuery();
oCnt.Close();
}//try
Результат:
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'PREPTWCBLUSGPROCESSTABLE'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Не могли бы вы помочь?
заранее благодарю вас.
Отметить
Комментарии:
1. вы пропустили отправку значения входного параметра?
2. Итак, мой ответ был вам полезен?
Ответ №1:
oCmd.Parameters.Add(
new OracleParameter()
{
ParameterName = "sDate",
OracleType = System.Data.OracleClient.OracleType.VarChar,
Direction = ParameterDirection.Input,
Value = "Something"
}
);
Надеюсь, вам value
также нужно указать атрибут.