首页 > 解决方案 > 从 R 中的文本文件写入 Sybase IQ 数据库表

问题描述

我有一个数据框,需要将其写入 Sybase IQ 数据库中的个人表。

我已将数据框写入 txt 文件,我希望将文件输入到我的表中。

library(data.table)
library(odbc)
library(DBI)

# WRITE OUT THE AWP WAC DATA TO THE DB
system.time(fwrite(AWP_WAC_DATA, 
                   "AWP_WAC_DATA.txt", 
                   na = 0, 
                   dec = ".", 
                   row.names = FALSE, 
                   col.names = TRUE))

然后我使用以下方法创建了一个表:

system.time(create_table <- dbSendQuery(dbname_conn,"DROP TABLE IF EXISTS myname.AWP_WAC_DATA;
                                                    CREATE TABLE myname.AWP_WAC_DATA
                                                    (
                                                    NDC VARCHAR(180),
                                                    DATE_QUARTER VARCHAR(180),
                                                    AVG_WAC_UNIT_PRICE FLOAT,
                                                    AVG_AWP_UNIT_PRICE FLOAT
                                                    )",
                                        believeNRows = FALSE,
                                        as.is = TRUE)) 

然后我尝试使用以下方法将数据加载到表中:

system.time(write_table <- dbSendQuery(dbname_conn,"INPUT INTO myname.AWP_WAC_DATA FROM 'C:\\Users\\myname\\OneDrive - company\\Laptop Backup\\My Documents\\Programming\\R\\Dashboard\\AWP_WAC_DATA.txt;' FORMAT TEXT (NDC,DATE_QUARTER,AVG_WAC_UNIT_PRICE,AVG_AWP_UNIT_PRICE)"))

我收到如下语法错误:

Error in new_result(connection@ptr, statement, immediate) : 
  nanodbc/nanodbc.cpp:1412: 42000: [Sybase][ODBC Driver][Sybase IQ]Syntax error near 'INPUT' on line 1  
Timing stopped at: 0.02 0 0.14

根据可以在此处找到的文档中的示例,我认为我的语法很好:http: //infocenter.sybase.com/help/index.jsp ?topic=/com.sybase.help.sqlanywhere.12.0.1/ dbreference/input-statement.html

如果有人可以提供帮助,我将不胜感激。谢谢。

标签: rsybase

解决方案


推荐阅读