从SAS表创建PostgreSQL表

问题描述 投票:0回答:1

我正在从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;

任何建议表示赞赏!

postgresql sas sqldatatypes
1个回答
0
投票

SAS允许变量名称的关键字更灵活。在postgresql代码中,您可能需要在变量或数据集名称周围添加双引号,以防止它认为您正在键入关键字。所以使用

select "end" from ... 

如果你这样做,那么请注意名称的情况。没有引号Postgres将默认以全小写形式创建/搜索名称。但是,一旦添加引号,引号中的值必须与变量名称完全匹配。因此,如果您创建名为Name的变量,它实际上将创建一个名为name的变量,您可以引用为NAMENaMe

但是如果你使用引号创建一个混合大小写的变量,比如"Name",那么大写的N将在变量名中,你必须使用"Name"来引用它。没有引号的Name将无法工作,因为它将查找带小写的变量name

© www.soinside.com 2019 - 2024. All rights reserved.