1

这个问题源于我在这个问题中收到的建议,即更改我的错误代码定义并从那里开始。

我的问题:尝试将数据插入表时,我收到SQLCODE 00195SQLSTATE S0001. 如果我正确理解错误代码,一个非零的正数表示查询成功但有警告。当我查看我的数据库时,没有插入任何数据。我找到了两个 将这个错误代码描述为的资源

不是公认的内置函数名

如您所见,我的表达式中使用的两个函数是TRIMSHA1。如果我忽略它们,同样的错误仍然存​​在。

PIC -(4)9正如我在另一篇文章中所建议的那样,使用 SQLCODE 字段的定义-195作为结果返回,也是一个我似乎找不到任何相关的错误代码。

我使用 SQL Server 2012 和 Percobol,它利用了 OpenCobol 编译器。

字段声明:

01 SQLCODE PIC 9(5).
01 SQLSTATE PIC X(5).

01 WS-INPUT.
        05 ACHTERNAAM PIC X(25) VALUE SPACES.
        05 VOORNAAM PIC X(15) VALUE SPACES.
        05 EMAIL PIC X(50) VALUE SPACES.
        05 LOGIN PIC X(15) VALUE SPACES.
        05 WACHTWOORD PIC X(11) VALUE SPACES.
        05 GEBR_TYPE PIC X(20) VALUE SPACES.

SQL查询:

EXEC SQL INSERT INTO dbo.Gebruikers
    VALUES ( TRIM( :LOGIN ), TRIM( :ACHTERNAAM ),
             TRIM( :EMAIL ), TRIM( :PROJECTCODE ),
             TRIM( :GEBR_TYPE ), TRIM( :VOORNAAM ),
             SHA1( TRIM( :WACHTWOORD ) ) )
END-EXEC

数据库:

表格概览

连接字符串:

jdbc:sqlserver://localhost\SQLEXPRESS;databaseName=Groep31;user=Groep31;password=somepw
4

1 回答 1

2

解决方案TRIMSQL Server 不支持。使用RTRIM固定它。

解决方案SHA1SQL Server 也不支持。使用HashBytes('SHA1', RTRIM(:WACHTWOORD))修复了这个(虽然现在有一些编码问题)。

于 2013-04-18T16:18:52.297 回答