0

我有一个游标,声明如下:

DECLARE staging_cur CURSOR FOR
SELECT 
col1, col2, ......
FROM crawl_db.staging_listing
WHERE is_deleted = FALSE;

然后我获取每一行,执行一些检查,然后将该行插入另一个(生产)数据库

OPEN staging_cur;
the_loop: LOOP

  FETCH staging_cur
  INTO col1_val, col2_val,.....;

  -- perform some checks and some optional inserts
      -- for example, if city with given name is not found in production DB, insert it

  -- insert into production db

END LOOP the_loop;

我意识到我需要为col1_val, col2_val ...表 staging_listing () 的每个对应列声明一个变量 ( col1, col2....)。问题是这个表包含90-100列并且声明所有变量真的很麻烦

似乎应该有比这更好的方法。是否有某种方法可以访问游标当前行的列,而无需声明单独的变量来保存列值?

4

1 回答 1

0

如果您需要将行插入另一个表,那么更好的方法是使用 INSERT...SELECT 语句。尽量避免使用游标。

插入...选择语法

于 2013-03-18T07:53:20.027 回答