将数据插入表返回错误代码195

时间:2013-04-18 12:00:14

标签: sql sql-server cobol error-code

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

我的问题:在尝试将数据插入表格时,我会收到SQLCODE 00195SQLSTATE S0001。如果我正确理解错误代码,则正非零数字表示查询成功但有警告。当我查看我的数据库时,没有插入任何数据。 我发现two resources将此错误代码描述为

  

不是公认的内置函数名称

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

使用我在其他帖子中建议的SQLCODE字段的PIC -(4)9定义,返回-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

数据库:

Table overview

连接字符串:

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

1 个答案:

答案 0 :(得分:2)

Solution:SQL Server不支持TRIM。使用RTRIM修复它。

Solution:SQL Server中也不支持SHA1。使用HashBytes('SHA1', RTRIM(:WACHTWOORD))修复此问题(尽管目前存在一些编码问题)。