使用下面的文档,我能够使用 rm/cobol 对 Linux 中的 Postgres 数据库执行选择/更新/插入。
https://www.microfocus.com/documentation/rm-cobol/1214/ISQLhelp/InstantSQLTableOfContents.htm
但是,我无法使用 InstantSql 创建表或删除表。以下是我看到的错误。我在上面的文档中看不到任何示例。
MOVE "drop table persons1"
TO sql-QrySQL
SQL PREPARE QUERY sql-QueryHandle,
sql-ConnectionHandle,
sql-QrySQL.
IF NOT sql-OK
display "UNSUCCESFUL PREPARE!!!"
PERFORM WITH TEST AFTER UNTIL sql-EndOfData
SQL DESCRIBE ERROR
sql-Error-Description
IF NOT sql-EndOfData
PERFORM DISPLAY-ERROR-INFO
END-IF
END-PERFORM
GO TO Z
END-IF
SQL START QUERY sql-QueryHandle.
IF NOT sql-OK
display "UNSUCCESFUL START!!!"
PERFORM WITH TEST AFTER UNTIL sql-EndOfData
SQL DESCRIBE ERROR
sql-Error-Description
IF NOT sql-EndOfData
PERFORM DISPLAY-ERROR-INFO
END-IF
END-PERFORM
GO TO Z
END-IF
编译成功。
UNSUCCESFUL START!!!
Err Msg ERROR: syntax error at or near "drop" at character 29;
Error while executing the query
Err TypO
Err statement SQLExecute
ErrsqlSate HY000
err no {00007
MOVE "CREATE TABLE Persn2(PersonID int)"
TO sql-QrySQL
SQL PREPARE QUERY sql-QueryHandle,
sql-ConnectionHandle,
sql-QrySQL.
UNSUCCESFUL START!!!
Err Msg ERROR: syntax error at or near "create" at character 28;
Error while executing the query
Err TypO
Err statement SQLExecute
ErrsqlSate HY000
err no {00007
但是我可以直接对 Linux 中的 postgres 数据库执行这些操作。
我也尝试过 grant 语句,但 grant 也显示与上面相同的错误。 (我尝试在不带引号的情况下给出声明,也可以使用单引号、双引号)
Move "grant create on database ttrac to 'postgres';"
to sql-QrySQL
SQL PREPARE QUERY sql-QueryHandle,
sql-ConnectionHandle,
sql-QrySQL.
错误出现在
MOVE
语句中。我想是这样。
对所有MOVE
声明尝试类似的方法
MOVE 'DROP TABLE "persons1"' TO sql-QrySQL
我刚刚将
'
添加到 SQL
无论是否存在问题,请恢复