通过teradata在sql server上运行查询并将结果存储在teradata中 [英] Run query on sql server through teradata and store result in teradata

查看:61
本文介绍了通过teradata在sql server上运行查询并将结果存储在teradata中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 SQL Server 中有一个表,在 Teradata 中有 5 个表.我想将 teradata 中的这 5 个表与 sql server 表连接起来,并将结果存储在 Teradata 表中.

I have one table in SQL server and 5 tables in Teradata.I want to join those 5 table in teradata with sql server table and store result in Teradata table.

我有 sql server 名称,但我不知道如何同时在 sql server 和 teradata 上运行查询.

I have sql server name but i dont know how to simultaneously run a query both on sql server and teradata.

我想这样做:sql server 表查询

i want to do this: sql server table query

Select distinct store 
from store_Desc

teradata 表:

teradata tables:

select cmp_id,state,sde 
from xyz 
where store in (
select distinct store 
from sql server table)

推荐答案

您可以创建一个表(如果您没有写权限,则创建一个易失性表)来执行此操作.将结果从 SQL Server 导出为文本或您选择的语言.

You can create a table (or a volatile table if you do not have write privileges) to do this. Export result from SQL Server as text or into the language of your choice.

创建易失性表 store_table (column_1 数据类型_1,column_2 数据类型_2,...column_n 数据类型_n);您可能需要在 ; 之前添加 ON COMMIT PRESERVE ROWS以上取决于您的交易设置.从一种语言中,您可以循环以下内容或执行多次.

CREATE VOLATILE TABLE store_table ( column_1 datatype_1, column_2 datatype_2, ... column_n datatype_n); You may need to add ON COMMIT PRESERVE ROWS before the ; to the above depending on your transaction settings. From a language you can loop the below or do an execute many.

INSERT INTO store_table VALUES(value_1, value_2, ..., value_n);

或者,您可以使用 Teradata SQL Assistant 从文本导入,方法是转到文件并选择导入.然后执行以下操作并导航到您的文件.

Or you can use the import from text using Teradata SQL Assistant by going to File and selecting Import. Then execute the below and navigate to your file.

INSERT INTO store_table VALUES(?, ?, ..., n);

插入数据后,您可以通过简单地引用表名来查询它.

Once you have inserted your data you can query it by simply referencing the table name.

SELECT cmp_id,state,sde从 xyz在哪里存储(选择商店FROM store_table)

DISTINCT 函数最容易在从 SQL Server 导出时完成,以最大限度地减少您需要上传的行.

The DISTINCT function is most easily done on export from SQL Server to minimize the rows you need to upload.

如果您多次执行此操作,则可以使用脚本执行此操作,这是一个非常简单的 Python 示例:

If you are doing this many times you can do this with a script, here is a very simple example in Python:

<代码>导入pyodbccon_ss = pyodbc.connect('sql_server_odbc_connection_string...')crs_ss = con_ss.cursor()con_td = pyodbc.connect('teradata_odbc_connection_string...')crs_td = con_td.cursor()# 为sql server拉取数据data_ss = crs_ss.execute('''SELECT不同的商店AS商店来自 store_Desc''').fetchall()#在teradata中创建表crs_td.execute('''创建易失性表 store_table (存储 DEC(4, 0)) 主要索引(商店)提交保留行;''')con_td.commit()# 插入值;你也可以使用一个 execute many ,但这更容易阅读......对于 data_ss 中的行:crs_td.execute('''INSERT INTO store_table VALUES(?)''', row)con_td.commit()# 获取最终数据data_td = crs_td.execute('''SELECT cmp_id,state,sde从 xyz在哪里存储(选择商店FROM store_table);''').fetchall()# 从这里写入文件或任何你想要的.

这篇关于通过teradata在sql server上运行查询并将结果存储在teradata中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆