【发布时间】:2013-03-18 07:46:54
【问题描述】:
我有一个这样声明的游标:
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;
我意识到我需要为表 staging_listing (col1, col2....) 的每个对应列声明一个变量 (col1_val, col2_val ...)。问题是这个表包含90-100列,声明所有变量真的很麻烦
似乎应该有比这更好的方法。是否有某种方法可以访问游标当前行的列,而无需声明单独的变量来保存列值?
【问题讨论】:
-
变量的用途是什么?
-
其中一些用于“执行一些检查”步骤。其中大部分用于“插入生产数据库”步骤。