【问题标题】:Create a PostgreSQL table from a SAS table从 SAS 表创建 PostgreSQL 表
【发布时间】: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


【解决方案1】:

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

select "end" from ... 

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 2011-02-04
    • 2011-09-11
    • 2012-04-07
    • 2017-10-24
    相关资源
    最近更新 更多