【发布时间】:2018-02-28 02:04:39
【问题描述】:
我正在从 sas 表创建 PostgreSQL 表,sas 表显示在下面。woe 列的类型是数字,其他列是 char 类型。
+----------+--------------+------+-------+-----+-----+
| variable | new_variable | type | start | end | woe |
+----------+--------------+------+-------+-----+-----+
| A | mi_A | char | 1 | | 1.3 |
| A | mi_A | char | 0 | | 0.6 |
| B | mi_B | char | 1 | | 5.4 |
| B | mi_B | char | 0 | | 0.1 |
| gnd_cd | gnd_cd | char | 3 | | 1.3 |
| gnd_cd | gnd_cd | char | @0 | | 0.6 |
| gnd_cd | gnd_cd | char | 2 | | 5.4 |
| gnd_cd | gnd_cd | char | N | | 0.1 |
| gnd_cd | gnd_cd | char | 1 | | 1.3 |
| gnd_cd | gnd_cd | char | 99 | | 0.6 |
| mar_sign | mar_sign | char | 0 | | 5.4 |
| mar_sign | mar_sign | char | Y | | 0.1 |
| mar_sign | mar_sign | char | N | | 6 |
+----------+--------------+------+-------+-----+-----+
客户端显示错误:在“结束”或附近出现语法错误。我认为该错误可能是由“开始”列引起的。仍然不知道为什么以及如何解决它。 我的代码只是一个 sql,tableA 用于 postgresql,tableB 来自 SAS:
create table schema.tableA from select * from mywork.tableB;
感谢任何建议!
【问题讨论】:
-
上面是你的代码吗?
-
你在两个系统的列上的数据类型是什么?此外,请确保将字段名称用双引号括起来,因为
end是 PostgreSQL 中的保留字,表示事务结束。 -
@vol7ron “start”列的 SAS 表是 char(有关更多信息,SAS 只有 numeric 和 char 类型)postgresql 中还没有数据类型,我直接从 SAS 表创建它。
-
SAS 在允许变量名使用关键字方面更加灵活。在您的 postgresql 代码中,您可能需要在变量或数据集名称周围添加双引号,以防止它认为您正在输入关键字。所以请使用
select "end" from ...。如果你这样做了,请注意名称的大小写。 -
发布导致错误的 SQL 代码和实际的错误消息。
标签: postgresql sas sqldatatypes