- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个以“日期”作为参数的存储过程。
该过程是从一个函数调用的,而该函数又是从 Java 代码调用的。
我将 Java 代码中的Date
作为参数传递。
现在的问题是存储过程没有更新数据库“日期”列中的正确时间。
Date
已正确更新,但时间更新为默认值 12:00:00AM
,而不是原始值。
我使用DBMS_SQL.EXECUTE
方法从函数调用存储过程。
JAVA代码:
import java.sql.CallableStatement;
import java.sql.ResultSet;<br/>
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;<br/>
public class StackOvFlow {<br/>
/**
*
* @param args
*/<br/>
public static void main(String[] args) {
String status = "";
try {
System.out.println("IN MAIN");<br/>
int userId = 1360822386;
StringBuffer batchUpdateSQL = new StringBuffer("BEGIN ");
StringBuffer updateSQLnew = null;
String date = "30-JUL-2012 10:30:00";<br/>
String currDate = "to_date(" + "'" + date + "'"
+ ",'DD-MON-YYYY HH24:MI:SS')";<br/>
updateSQLnew = new StringBuffer(
"BEGIN PKG_AMB_LOGIN.P_TRACK_USER("
+ userId
+ ",'"
+ currDate
+ ""
+ ");Exception When BufferMgr.app_errors_exit Then Rollback; Return; End; ");<br/>
batchUpdateSQL.append(updateSQLnew);<br/>
batchUpdateSQL
.append(" Exception When BufferMgr.app_errors_exit Then Rollback; Return; End;");<br/>
System.out.println("INPUT ::::");<br/>
System.out.println(batchUpdateSQL);<br/>
String res = getMonthlySave(batchUpdateSQL.toString());
System.out.println("Response: " + res);<br/>
} catch (Exception e) {
System.out.println("Exception" + e);
e.printStackTrace();
}
System.out.println(status);<br/>
}<br/>
public static String getMonthlySave(String plSqlBlk) {<br/>
String output = "";
System.out.println("IN GET MONTHLY SAVE");<br/>
Session session = null;<br/>
CallableStatement cstmt = null;<br/>
ResultSet rs = null;<br/>
SessionFactory sessionFactory = new Configuration().configure(
"hibernate.cfg.xml")<br/>
.buildSessionFactory();<br/>
session = sessionFactory.openSession();<br/>
Transaction transaction = session.beginTransaction();<br/>
try {<br/>
System.out<br/>
.println("<strong>*</strong><em>calling SP <strong></strong></em><strong>**</strong>");<br/>
cstmt = session.connection().prepareCall(<br/>
"{? = call PKG_THR.P_UPDT(?,?)}");<br/>
cstmt.setFetchSize(10000);<br/>
cstmt.registerOutParameter(1,<br/>
oracle.jdbc.driver.OracleTypes.CURSOR);
cstmt.setInt(2,186);<br/>
cstmt.setString(3, plSqlBlk);
cstmt.execute();<br/>
rs = (ResultSet) cstmt.getObject(1);
int size = rs.getFetchSize();<br/>
System.out.println("The size of fetch is " + size);<br/>
while (rs.next()) {<br/>
output = output + rs.getString(1);<br/>
}
System.out.println("OUTPUT ::::::::::::");<br/>
System.out.println(output);<br/>
} catch (Exception e) {<br/>
System.out<br/>
.println("Exception occured in executing query in fetchdetails....... ");<br/>
e.printStackTrace();<br/>
}<br/>
finally {<br/>
transaction.commit();<br/>
session.close();<br/>
}
return output;
}<br/>
}<p></p>
<p></p>
PL/SQL Function:
<br/>
CREATE or REPLACE
PACKAGE BODY PKG_THR AS
FUNCTION P_UPDT(login_id number,plsql_block varchar2) RETURN cursor_type IS
louvtBuff a_XMLBUFFER_TABLE;
loutRowBuff a_XMLBUFFER_TABLE := a_XMLBUFFER_TABLE();
EXIT_MESSAGE EXCEPTION;
lreturn number;
offset BINARY_INTEGER := 1;
kount BINARY_INTEGER := 5;
ln_dbms_cur NUMBER;
ln_cur_execute NUMBER;
j number := 1;
i number;<br/>
buffout cursor_type;
BEGIN
BufferMgrXML.CLEARBUFFER;
BEGIN
pkg_glbl.g_login_id := login_id;
pkg_glbl.g_connect:='1';<br/>
ln_dbms_cur := DBMS_SQL.OPEN_CURSOR;<br/>
DBMS_SQL.PARSE(ln_dbms_cur,plsql_block,DBMS_SQL.NATIVE);<br/>
ln_cur_execute := DBMS_SQL.EXECUTE(ln_dbms_cur);<br/>
EXCEPTION
WHEN BufferMgr.app_errors_exit then
lreturn := BufferMgrXML.getXML(louvtBuff,1,1);
RAISE EXIT_MESSAGE;
END;
最佳答案
因为没有太多代码可供观察,所以很难判断这种情况到底出了什么问题。
非常典型的原因是使用 java.sql.Date ,它将所有时间字段设置为 0。如果是这种情况,您可以使用 java.sql.Timestamp相反(将丢失几分之一秒)。
关于java - 日期字段未正确更新。提交日期更新为 12 :00:00AM instead of original Value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11722622/
我正在尝试使用 flot 绘制 SQL 数据库中的数据图表,这是使用 php 收集的,然后使用 json 编码的。 目前看起来像: [{"month":"February","data":482},
我有一个来自 php 行的 json 结果,类似于 ["value"]["value"] 我尝试使用内爆函数,但得到的结果是“value”“value” |id_kategori|created_at
脚本 1 将记录 two 但浏览器仍会将 select 元素呈现为 One。该表单还将提交值 one。 脚本 2 将记录、呈现和提交 两个。我希望它们是同义词并做同样的事情。请解释它们为何不同,以及我
我的python字典结构是这样的: ips[host][ip] 每行 ips[host][ip] 看起来像这样: [host, ip, network, mask, broadcast, mac, g
在 C# 中 我正在关注的一本书对设置和获取属性提出了这样的建议: double pri_test; public double Test { get { return pri_test; }
您可能熟悉 enum 位掩码方案,例如: enum Flags { FLAG1 = 0x1, FLAG2 = 0x2, FLAG3 = 0x4, FLAG4 = 0x8
在一些地方我看到了(String)value。在一些地方value.toString() 这两者有什么区别,在什么情况下我需要使用哪一个。 new Long(value) 和 (Long)value
有没有什么时候 var result = !value ? null : value[0]; 不会等同于 var result = value ? value[0] : null; 最佳答案 在此处将
我正在使用扫描仪检测设备。目前,我的条形码的值为 2345345 A1。因此,当我扫描到记事本或文本编辑器时,输出将类似于 2345345 A1,这是正确的条形码值。 问题是: 当我第一次将条形码扫描
我正在读取 C# 中的资源文件并将其转换为 JSON 字符串格式。现在我想将该 JSON 字符串的值转换为键。 例子, [ { "key": "CreateAccount", "text":
我有以下问题: 我有一个数据框,最多可能有 600 万行左右。此数据框中的一列包含某些 ID。 ID NaN NaN D1 D1 D1 NaN D1 D1 NaN NaN NaN NaN D2 NaN
import java.util.*; import java.lang.*; class Main { public static void main (String[] args) thr
我目前正在开发我的应用程序,使其设计基于 Holo 主题。在全局范围内我想做的是工作,但我对文件夹 values、values-v11 和 values-v14. 所以我知道: values 的目标是
我遇到了一个非常奇怪的问题。 我的公司为我们的各种 Assets 使用集中式用户注册网络服务。我们一般通过HttpURLConnection使用请求方法GET向Web服务发送请求,通过qs设置参数。这
查询: UPDATE nominees SET votes = ( SELECT votes FROM nominees WHERE ID =1 ) +1 错误: You can't specify
如果我运行一段代码: obj = {}; obj['number'] = 1; obj['expressionS'] = 'Sin(0.5 * c1)'; obj['c
我正在为我的应用创建一个带有 Twitter 帐户的登录页面。当我构建我的项目时会发生上述错误。 values/strings.xml @dimen/abc_text_size_medium
我在搜索引擎中使用以下 View : CREATE VIEW msr_joined_view AS SELECT table1.id AS msr_id, table1.msr_number, tab
为什么验证会返回此错误。如何解决? ul#navigation li#navigation-3 a.current Value Error : background-position Too
我有一个数据名如下 import pandas as pd d = { 'Name' : ['James', 'John', 'Peter', 'Thomas', 'Jacob', 'Andr
我是一名优秀的程序员,十分优秀!