sql - 在 OpenEdge 中选择字段日期

标签 sql openedge progress-db

我正在尝试使用 Microsoft SQL Server Management Studio (select * from openquery ([PROALPHA], 'select Date来自 PAVAR.PUB.UVT_DatesOfVersionsBOPos')

不幸的是,我收到以下错误消息:

The OLE DB provider "MSDASQL" for the connection server "PROALPHA" has the message "[DataDirect] [ODBC Progress OpenEdge Wire Protocol driver] [OPENEDGE] Syntax error in SQL statement at or about" Date from PAVAR.PUB.UVT_DatesOfVersionsB "( 10713) ".

Msg 7321, Level 16, State 2, Line 1

Failed to prepare the select date from PAVAR.PUB.UVT_DatesOfVersionsBOPos query to run for the OLE DB provider "MSDASQL" for the linked server "PROALPHA".

我假设 SQL 将日期字段解释为日期函数,因此显示错误。
你们中有人知道正确的语法以便我可以获取该字段吗?

最佳答案

语法错误是因为 DATE 是 OpenEdge SQL 中的保留字。仅当用双引号分隔关键字时,才可以在 SQL 语句中使用关键字作为标识符。

示例 1:这会生成您所描述的语法错误

SQLExplorer>select date from pub.cust1;
=== SQL Exception 1 ===
SQLState=HY000
ErrorCode=-210056
[DataDirect][OpenEdge JDBC Driver][OpenEdge] Syntax error in SQL statement at or about "date from pub.cust1" (10713)

示例 2:这在我们用双引号分隔保留字时起作用

SQLExplorer>select "date" from pub.cust1;
date
----------

文档链接:https://documentation.progress.com/output/ua/OpenEdge_latest/index.html#page/dmsrf/openedge-sql-reserved-words.html

关于sql - 在 OpenEdge 中选择字段日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63226694/

相关文章:

encryption - 如何使用 Progress DB 保护通过 ODBC 连接传输的数据

sql - 如何在 MERGE INTO 语句中使用 JOIN?

sql - 如何有效地查询数据集中的连续日期集?

python - 当列名包含破折号(连字符)时引用 pyodbc 中的行值

progress-4gl - 从正在进行的字符串中删除所有特殊字符 4GL

mysql - SQL Sum 没有返回正确的数据

sql - 为什么 SSMS 中 "TRANSFER"呈蓝色?

sql - 如何使用数据列表从查询中加入数据?

logging - 如何登录 OpenEdge Progress?

database - Progress RDBMS 索引问题 - 供引用