存储过程如下:
CREATE OR REPLACE PROCEDURE SP_FUNDINFOMATION
(
FUNCTION_ID IN INTEGER,
FUNDCODE IN VARCHAR2 DEFAULT NULL,
FUNDNAME IN VARCHAR2 DEFAULT NULL,
CREATEDATE IN DATE DEFAULT NULL,
FUNDGRADE IN VARCHAR2 DEFAULT NULL,
FUNDNET IN NUMERIC DEFAULT NULL,
CUR_FUNDINFO OUT PGK_FUNDINFOMATION.CUR_FUNDINFOMATION
)
AS
STR_SQL VARCHAR2(5000);
STR_CONDITION VARCHAR2(1000);
BEGIN
IF FUNCTION_ID=100 THEN
IF FUNDCODE IS NOT NULL THEN
STR_CONDITION:= STR_CONDITION || ' FUNDCODE LIKE ''%'||FUNDCODE||'%''';
END IF;
IF FUNDNAME IS NOT NULL THEN
STR_CONDITION:= STR_CONDITION || ' AND FUNDNAME LIKE ''%'||FUNDNAME||'%''';
END IF;
STR_SQL:='SELECT FUNDCODE,FUNDNAME,CREATEDATE,FUNDGRADE,FUNDNET FROM SR_FUNDINFOMATION';
IF STR_CONDITION IS NOT NULL THEN
STR_SQL:=STR_SQL||' WHERE '||STR_CONDITION;
END IF;
DBMS_OUTPUT.PUT_LINE(STR_SQL);
OPEN CUR_FUNDINFO FOR
STR_SQL;
END IF;
IF FUNCTION_ID=101 THEN
INSERT INTO SR_FUNDINFOMATION(FUNDCODE,FUNDNAME,CREATEDATE,FUNDGRADE,FUNDNET) VALUES (FUNDCODE,FUNDNAME,CREATEDATE,FUNDGRADE,FUNDNET);
COMMIT;
END IF;
调用该存储过程101功能号时发生【未执行句柄】的错误!估计是101功能里面没有打开游标引起的!
我创建游标主要是为功能号100里输入查询数据;101里面不需要游标变量!希望哪位大侠帮我看看,有什么好方法解决这个问题!谢谢
CREATE OR REPLACE PROCEDURE SP_FUNDINFOMATION
(
FUNCTION_ID IN INTEGER,
FUNDCODE IN VARCHAR2 DEFAULT NULL,
FUNDNAME IN VARCHAR2 DEFAULT NULL,
CREATEDATE IN DATE DEFAULT NULL,
FUNDGRADE IN VARCHAR2 DEFAULT NULL,
FUNDNET IN NUMERIC DEFAULT NULL,
CUR_FUNDINFO OUT PGK_FUNDINFOMATION.CUR_FUNDINFOMATION
)
AS
STR_SQL VARCHAR2(5000);
STR_CONDITION VARCHAR2(1000);
BEGIN
IF FUNCTION_ID=100 THEN
IF FUNDCODE IS NOT NULL THEN
STR_CONDITION:= STR_CONDITION || ' FUNDCODE LIKE ''%'||FUNDCODE||'%''';
END IF;
IF FUNDNAME IS NOT NULL THEN
STR_CONDITION:= STR_CONDITION || ' AND FUNDNAME LIKE ''%'||FUNDNAME||'%''';
END IF;
STR_SQL:='SELECT FUNDCODE,FUNDNAME,CREATEDATE,FUNDGRADE,FUNDNET FROM SR_FUNDINFOMATION';
IF STR_CONDITION IS NOT NULL THEN
STR_SQL:=STR_SQL||' WHERE '||STR_CONDITION;
END IF;
DBMS_OUTPUT.PUT_LINE(STR_SQL);
OPEN CUR_FUNDINFO FOR
STR_SQL;
END IF;
IF FUNCTION_ID=101 THEN
INSERT INTO SR_FUNDINFOMATION(FUNDCODE,FUNDNAME,CREATEDATE,FUNDGRADE,FUNDNET) VALUES (FUNDCODE,FUNDNAME,CREATEDATE,FUNDGRADE,FUNDNET);
COMMIT;
END IF;
调用该存储过程101功能号时发生【未执行句柄】的错误!估计是101功能里面没有打开游标引起的!
我创建游标主要是为功能号100里输入查询数据;101里面不需要游标变量!希望哪位大侠帮我看看,有什么好方法解决这个问题!谢谢
{
OpenConnection(); cmd = new OracleCommand(Properties.Resources.SP_FUNDINFOMATION, conn);
cmd.CommandType = CommandType.StoredProcedure; OracleParameter[] parameters = BuildInsertParameter(101, FundInfo);
cmd.Parameters.AddRange(parameters); iRet = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
szMsg = ex.Message;
}
finally
{
CloseConnection();
cmd.Dispose();
}执行到iRet = cmd.ExecuteNonQuery();发生错误
错误:
ORA-24338: 未执行语句句柄