通过游标,将数据导入到另一个结构不同的表

create table test_log --保存转换后的ID,以备转换过程出错时,进行还原操作
(
 uid int identity,
 rec_uid varchar(12),
 tb_name varchar(100)
)*/


declare @as_unique_id  varchar(12)
declare @as_ibk_uid    varchar(12)
declare @as_so_uid    varchar(12)
declare @as_rec_crt_user varchar(20)
declare @as_rec_upd_user varchar(20)
declare @as_rec_crt_date datetime
declare @as_rec_upd_date datetime
     
declare cursor1 cursor for
 select rtrim(ltrim(unique_id)),rtrim(ltrim(so_uid)),rec_crt_user,rec_upd_user,rec_crt_date,rec_upd_date from exibk with(nolock) where voided > 0 and so_uid in('0Y807000006','0C803000008')
open cursor1 
fetch next from cursor1 into @as_ibk_uid,@as_so_uid,@as_rec_crt_user,@as_rec_upd_user,@as_rec_crt_date,@as_rec_upd_date 
while @@fetch_status=0   
begin

    if @as_so_uid !=''
    begin
       declare @exibkpodtl_unique_id varchar(12)
       declare cursor2 cursor for
 
       select rtrim(ltrim(unique_id)) from expodtl with(nolock) where so_uid=@as_so_uid
       open cursor2 
       fetch next from cursor2 into @exibkpodtl_unique_id
       while @@fetch_status=0   
          begin

          EXEC sp_web_cmn_get_id 'exibkpodtl', 1, @as_unique_id OUTPUT, 'MEADOWS'
          insert into test_log(rec_uid,tb_name) values(@as_unique_id,'exibkpodtl')
          insert into exibkpodtl
         (
         unique_id,
         bk_uid,
         po_uid,
         po_no,
         po_item_no
         )
         select
         @as_unique_id as unique_id,
         @as_ibk_uid as bk_uid,
         po_uid,
         po_no,
         po_item_no
         from expodtl with(nolock) where unique_id =@exibkpodtl_unique_id
       fetch next from cursor2 into @exibkpodtl_unique_id
       end
 
 close cursor2              
 deallocate cursor2

 end

fetch next from cursor1 into @as_ibk_uid,@as_so_uid,@as_rec_crt_user,@as_rec_upd_user,@as_rec_crt_date,@as_rec_upd_date  --将游标向下移1行
end

close cursor1                  
deallocate cursor1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然可以!以下是一个示例的Python脚本,用于将一个JSON文件导入到PostgreSQL数据库中: ```python import json import psycopg2 # 定义数据库连接参数 db_host = 'your_host' db_port = 'your_port' db_name = 'your_database_name' db_user = 'your_username' db_password = 'your_password' # 定义JSON文件路径 json_file_path = 'path_to_your_json_file.json' # 读取JSON文件 with open(json_file_path, 'r') as file: json_data = json.load(file) # 建立与PostgreSQL数据库的连接 conn = psycopg2.connect( host=db_host, port=db_port, dbname=db_name, user=db_user, password=db_password ) # 创建游标对象 cursor = conn.cursor() # 将JSON数据插入数据库中 for data in json_data: # 根据JSON数据结构数据结构进行相应的操作 # 这里假设JSON数据中的键名和数据的列名一致 # 以下是一个示例,你需要根据实际情况进行修改 sql = "INSERT INTO your_table_name (column1, column2) VALUES (%s, %s)" values = (data['key1'], data['key2']) # 执行SQL语句 cursor.execute(sql, values) # 提交事务并关闭连接 conn.commit() cursor.close() conn.close() print("数据导入完成!") ``` 请替换代码中的以下部分来适应你的实际情况: - `your_host`:你的PostgreSQL数据库的主机地址 - `your_port`:你的PostgreSQL数据库的端口号 - `your_database_name`:你要连接的数据库名称 - `your_username`:你的数据库用户名 - `your_password`:你的数据库密码 - `path_to_your_json_file.json`:你的JSON文件路径 - `your_table_name`:你要插入数据数据名 - `column1, column2`:你要插入数据的列名 请注意,这只是一个示例,你需要根据你的实际情况进行适当的修改。同时,请确保你已经安装了`psycopg2`模块,可以通过以下命令进行安装: ``` pip install psycopg2 ``` 希望这可以帮助到你!如果还有其他问题,请随时询问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值