我正在从oracle 9i到lotus notes中检索数据。我使用Oracle 10g进行测试,因为这就是我所拥有的。在默认的HR数据库中,有一个EMPLOYEES表。最近,我添加了一个新列,以获得最后修改的时间戳,这是成功的。数据的形式如下:25-7月12日10.28.32.000000 AM
以下是我的lotusscript代码:
Option Public
Option Declare
UseLSX "*lsxlc"
%Include "lsconst.lss"
Sub Initialize
Dim s As New NotesSession, db As NotesDatabase
Set db=s.Currentdatabase
Dim lcs As New Lcsession
lcs.Clearstatus
Dim conUser As New Lcconnection("Oracle")
Dim staffdoc As NotesDocument
Dim fieldlistuser$
fieldlistuser="EMPLOYEE_ID,FIRST_NAME,MODIFIED_AT"
conUser.Server="localhost"
conUser.UserID="hr"
conUser.Password="hr"
conUser.Connect
conUser.MetaData="HR.EMPLOYEES"
conUser.Fieldnames=fieldlistuser
Dim fieldsUser As New LCFieldList
Dim fieldUser As LCField
Call conUser.Execute("Select * From HR.EMPLOYEES", fieldsUser)
While conUser.Fetch(fieldsUser) > 0
Set staffdoc=New NotesDocument(db)
staffdoc.Form="Staff"
staffdoc.StaffID=fieldsUser.EMPLOYEE_ID(0)
staffdoc.StaffName=fieldsUser.FIRST_NAME(0)
staffdoc.DateJoin=fieldsUser.MODIFIED_AT(0)
Call staffdoc.Save(True, True)
Wend
conUser.Disconnect
End Sub以前,在将时间戳列添加到EMPLOYEES表中之前,一切都是正常的,我可以将每行导出到一个临时的lotus视图中。现在,错误总是在Call conUser.Execute("Select * From HR.EMPLOYEES", fieldsUser)停止。我认为这与行fieldlistuser="EMPLOYEE_ID,FIRST_NAME,MODIFIED_AT"有关,所以我从其中删除了MODIFIED_AT并注释了staffdoc.DateJoin=fieldsUser.MODIFIED_AT(0),但是错误仍然发生。错误是错误:字段'MODIFIED_AT‘、Connector’‘Oracle’、Method -Execute-的数据类型无效。这真的能做到吗?如果可以,我应该在莲花中存储什么数据类型的时间戳值?
发布于 2012-07-25 12:51:36
我的第一个想法是select语句在服务器上工作正常吗?
假设是这样的话,这看起来就像驱动程序将时间戳转换为字段的问题。作为一种解决办法,您可以创建一个存储过程,它以日期时间而不是时间戳类型的形式返回“修改时”。
发布于 2012-07-25 13:51:45
在查看help文档时,我想知道captialization是否重要,因为我看到的LCConnection属性是FieldNames,而不是字段名称。
https://stackoverflow.com/questions/11642621
复制相似问题