我想將一些 maximo 數據插入另一個數據庫服務器的表中。我創建了一個這樣的自動化腳本
from psdi.security import UserInfo
from psdi.server import MXServer
from psdi.util import MXApplicationException
from psdi.util import MXException
from java.rmi import RemoteException
from java.lang import System
from java.text import Format, DateFormat, SimpleDateFormat
from java.lang import System
mx = MXServer.getMXServer();
ui = mx.getSystemUserInfo();
url= "jdbc:sqlserver://MAXIMODEMO:1433; database=IntegrationTest; user=maxadmin; password=password; encrypt=false; trustServerCertificate=false; loginTimeout=30;";
from java.lang import Class
from java.sql import DriverManager,SQLException
#load driver and register
Class.forName(jdbc_driver).newInstance()
DriverManager.registerDriver(Class.forName(jdbc_driver).newInstance())
#get Connection
#connection = DriverManager.getConnection(jdbc_url, jdbc_user), jdbc_password)
connection = DriverManager.getConnection(url)
#find if item exist
sql = "Select itemnum from item where itemnum='"+mbo.getString("ITEMNUM")+"'"
result = connection.createStatement().executeQuery(sql)
sqlinsert = ""
sdf = SimpleDateFormat("yyyy-MM--dd");
if(result.next()) :
sqlinsert = "Update Item set description='"+mbo.getString("DESCRIPTION")+"', orderunit='"+mbo.getString("ORDERUNIT")+"', status='"+mbo.getString("STATUS")+"' where ItemNum='"+mbo.getString("ITEMNUM")+"'"
else:
sqlInsert="Insert into item(itemnum, description, orderunit, statusdate, status, groupname) values('" + mbo.getString("ITEMNUM")+ "','" + mbo.getString("Description") + "', '" + mbo.getString("ORDERUNIT") + "','" + sdf.format(mbo.getDate("STATUSDATE")) + "', '" + mbo.getString("STATUS") + "','" + mbo.getString("GROUPNAME") + "') "
result.close()
result = connection.createStatement().executeQuery(sqlinsert)
connection.close()
沒有錯誤,但沒有插入數據。select 的查詢工作正常,它可以返回值,但插入/更新不起作用。我在執行插入/更新查詢時錯過了什麼嗎?
您connection.commit()
在connection.close()
.
此外,您應該executeUpdate()
使用插入或更新語句文本進行調用executeQuery()
,而不是使用它進行調用。該JavaDoc中的java.sql.Statement.executeUpdate()
發言權,“執行給定的SQL語句,這可能是一個INSERT,UPDATE或DELETE語句或SQL語句不返回任何內容,如SQL DDL語句。”
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句