.net - 功能在 2016 服务器中不起作用,但在 2012 服务器中起作用
问题描述
下面的函数 StsExpl.MemoId 仅获取 4 位的值,但在 DB 中存储了 8 位
ADD_EXPLANATION_SQL 是声明序列的查询
ADD_EXPLANATION_SQL As String = "DECLARE next_seq NUMBER;
BEGIN
SELECT STATUSEXPLANATIONS_SEQ.NEXTVAL INTO next_seq FROM dual;
INSERT INTO STATUSEXPLANATIONS (MEMOID,CSFNTYPE,EXPLANATION,PROBLEMCODE,CREATE_DATE,CREATE_BY,LAST_UPDATE_DATE,LAST_UPDATE_BY)
VALUES(next_seq,:csfn_type,:explanation,:problem_code,SYSDATE,:user_id,SYSDATE,:user_id);
:memo_id := '' || next_seq;
END;"
Public Shared Sub Add(ByVal StsExpl As StatusExplanation)
Dim cmd As OracleCommand = Nothing
Try
cmd = New OracleCommand()
cmd.CommandText = ADD_EXPLANATION_SQL
cmd.CommandType = CommandType.Text
cmd.Parameters.AddWithValue("csfn_type", StsExpl.CsfnType).DbType = DbType.AnsiString
cmd.Parameters.AddWithValue("memo_id", "AAAAAAAAAAAA").DbType = DbType.AnsiString
cmd.Parameters("memo_id").Direction = ParameterDirection.InputOutput
cmd.Parameters.AddWithValue("explanation", StsExpl.Explanation).DbType = DbType.AnsiString
cmd.Parameters.AddWithValue("problem_code", DbUtilities.En(StsExpl.ProblemCode)).DbType = DbType.AnsiString
cmd.Parameters.AddWithValue("user_id", StsExpl.CreatedBy).DbType = DbType.AnsiString
OracleCommandProcessor.ExecuteNonQuery(cmd, "ConnectString")
StsExpl.MemoId = cmd.Parameters("memo_id").Value
解决方案
推荐阅读
- appium - 如何使用 appium 将所有 recyclerView 项放入 ArrayList
- sql - hadoop hive 使用 row_number()
- python - 使用 Numpy 查找数组中的行组合,使得每列的总和为相同的值
- python - Python中同时出现两个数字
- msbuild - 在针对 netcoreapp2.1 的 MSBuild 任务中使用 SqlClient
- android - Firebase 数据库缓存因内存而导致应用程序崩溃
- file - Netbeans:文件夹未下载(同步)-符号链接
- android - 智能手表发送数据时 Android Wear 报错 ConnectionResult{statusCode=SERVICE_VERSION_UPDATE_REQUIRED, resolution=null}
- java - 更新对象中的字段值
- java - 如何将另一个 FragmentActivity 添加到 MainActivity 中?