Импорт данных Julia Dataframe в серверную базу данных MS SQL - PullRequest
1 голос
/ 22 января 2020

Я экспериментировал с ODB Джулии C .jl и хотел посмотреть, есть ли у кого-нибудь хороший пример взятия DataFrame и загрузки на SQL Сервер. К сожалению, примеры (включая ODB C .load! ()), Которые я пробовал, мне не помогли. Вот пример, над которым я работал:

using ODBC
using DataFrames

db = ODBC.DSN("SQL SERVER NAME")

ODBC.execute!(db, "CREATE TABLE master.dbo.test ([ID] [nvarchar] not null, [NAME] [nvarchar] (120) null)")
ODBC.execute!(db, "INSERT INTO test VALUES (472, 'Bobby Flynn')");

##supposed to be the way to load a dataframe into sql
stmt = ODBC.prepare(db, "INSERT INTO test (col1, col2), VALUES(?,?)")

using Tables
df = DataFrame(col1=["1","22","33"], col2=["stew","soup","noodle"])
for row in Tables.rows(df)
    ODBC.execute!(stmt, (row(df.col1), row(df.col2)))
end

Я также начал связывать PyCall & pyimport ("pyodb c"), но у меня нет хорошего примера для следования

 using Conda
 using PyCall

 conn_str = ("DRIVER={SQL Server Native Client 11.0};SERVER=MY SERVER NAME;DATABASE=master;Trusted_Connection=yes;")

cnxn = pyodbc.connect(conn_str)

Это установление соединения, и я постараюсь посмотреть, смогу ли я заставить это работать в качестве альтернативы. Любая помощь приветствуется, если есть альтернатива Julia Speci c. Спасибо

1 Ответ

0 голосов
/ 22 января 2020

Хотелось бы что-нибудь подобное? Обратите внимание, как к row здесь обращаются, используя row.col1 вместо row(df.col1):

using ODBC
db = ODBC.DSN("SQL SERVER NAME")

ODBC.execute!(db, "CREATE TABLE master.dbo.test ([ID] [nvarchar] not null, [NAME] [nvarchar] (120) null)")
ODBC.execute!(db, "INSERT INTO test VALUES (472, 'Bobby Flynn')");

# supposed to be the way to load a dataframe into sql
stmt = ODBC.prepare(db, "INSERT INTO test (col1, col2), VALUES(?,?)")

using DataFrames
using Tables
df = DataFrame(col1=["1","22","33"], col2=["stew","soup","noodle"])
for row in Tables.rows(df)
    ODBC.execute!(stmt, (row.col1, row.col2))
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...