1

我正在努力将数据从 oracle 9i 检索到 lotus notes。我正在使用 Oracle 10g 进行测试,因为这就是我所拥有的。在默认 HR 数据库中,有一个 EMPLOYEES 表。我最近添加了一个新列来获取最后修改的时间戳,这是成功的。数据格式如下:25-JUL-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),但错误仍然存​​在。错误是Error: Invalid data type for field 'MODIFIED_AT', Connector'Oracle', Method -Execute-。这真的可以做到吗?如果可以,我应该在 Lotus 中存储什么数据类型的时间戳值?

4

2 回答 2

0

我的第一个想法是 select 语句在服务器上工作正常吗?

假设确实如此,这看起来像是驱动程序将时间戳转换为 Lotus Notes 日期时间字段的问题。作为一种解决方法,您可以创建一个存储过程,将“修改时间”作为日期时间而不是时间戳类型返回。

于 2012-07-25T12:51:36.453 回答
0

只是查看帮助文档,我想知道大写是否重要,因为我看到列出的 LCConnection 属性是 FieldNames,而不是 Fieldnames。

于 2012-07-25T13:51:45.340 回答