原谅我缺乏知识。我正在尝试从sqlnavigator
. 我能够捕获prm1.Value
,但我不确定我应该如何RETURN NUMBER
在 sqlnavigator 中从我的包规范中包含(参见下面的 SQL)。当我运行它时,没有向 ORACLE 添加任何内容。
Public Shared Function INSERT_CATEGORY()
Dim cmdOraCommand As New OracleCommand
Try
cmdOraCommand.CommandType = CommandType.StoredProcedure
cmdOraCommand.CommandText = "SF_ALEX_TEST.insertCategory"
Dim prm1 As OracleParameter = cmdOraCommand.Parameters.Add( _
"inCategory", OracleType.VarChar)
prm1.Direction = ParameterDirection.Input
prm1.Value = strCategory
Catch ex As Exception
MsgBox(ex.Message)
Finally
cmdOraCommand.Dispose()
End Try
End Function
SQL/ORACLE
FUNCTION insertCategory(inCategory IN VARCHAR2) RETURN NUMBER
IS
vReturnedValue NUMBER;
vID NUMBER;
vExist NUMBER;
BEGIN
IF inCategory IS NULL THEN
vReturnedValue := 0;
RETURN vReturnedValue;
ELSE
BEGIN
SELECT COUNT(MNT_CATEGORY) INTO vExist
FROM MNT_CATEGORIES
WHERE MNT_CATEGORIES.MNT_CATEGORY = upper(inCategory);
END;
IF vExist = 0 THEN
BEGIN
SELECT SEQ_MNT_LOG.NEXTVAL INTO vID FROM DUAL;
INSERT INTO MNT_CATEGORIES(MNT_CATEGORY_ID, MNT_CATEGORY)
VALUES (vID, UPPER(inCategory));
COMMIT;
vReturnedValue := vID;
RETURN vReturnedValue;
EXCEPTION
WHEN OTHERS THEN
vReturnedValue := SQLCODE;
RETURN vReturnedValue;
END;
ELSE
vReturnedValue := vExist * -1;
RETURN vReturnedValue;
END IF;
END IF;
END;