小编Hdk*_*Hdk的帖子

我如何在通过python运行时将变量传递到sql文件中

我有一个 Python 包装器,它读取 SQL 文件并执行它。例子:

query=job.get_sql_from_file("$DIR/file_path/file_name.sql")
job.execute(query)
job.query_desc()
Run Code Online (Sandbox Code Playgroud)

$DIR :是 bashrc 文件中声明的默认路径

FILE_NAME.sql :包含架构名称和读取 input_file 以加载表的路径:我希望该路径是动态的并将其作为参数传递。我怎样才能做到这一点?

我所知道的是:

cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))
Run Code Online (Sandbox Code Playgroud)

...但它在我的情况下不起作用,因为我的 SQL 语句位于 .sql 文件中,并且我必须在该文件本身中传递参数。

python sql

9
推荐指数
1
解决办法
1万
查看次数

如何从CSV中获取文件名并将其插入表的一列中

假设mt table名字是Table_1

表的结构类似于:

EMP_id, Emp_Name, File_Name_Input_Date (columns)
Run Code Online (Sandbox Code Playgroud)

Table_1从CSV文件加载.此CSV文件的名称是daily_01122014.csv

我使用垂直复制命令来加载此表:

ex copy Table_1 from '/location/daily_01122014.csv'delimiter ',';
Run Code Online (Sandbox Code Playgroud)

它将加载表,但列名将File_Name_Input_Date留空,我必须硬编码.

我想要的是编写一个shell脚本,它将动态读取文件名并将其加载到文件名中column File_Name,并从文件名中提取日期.

即:如果文件名是daily_01122014.csv,那么加载Table_1File_Name应该是daily_01122014.csv,Input_Date应该是2014-12-01.由于我有50-60个文件,我无法手动完成.

sql csv shell vertica

7
推荐指数
1
解决办法
1093
查看次数

标签 统计

sql ×2

csv ×1

python ×1

shell ×1

vertica ×1