2010-10-25 19 views
0

您好我有一個遊標的程序。基本上在遊標中,我正在獲取一條記錄,並將其插入DBA.header_balancing中,並使用遊標中收到的某些值。 我收到此錯誤「錯誤:相關名‘updates_cur’未找到」IQ SQL錯誤:未找到相關名'updates_cur'

CREATE PROCEDURE sp_iq_bw_balancing 
AS 
BEGIN 
     DECLARE @date_Var date 
     SET @date_Var = CONVERT(CHAR(10),datepart(yy,getdate())||'-'||datepart(mm,getdate())||'-'||datepart(dd,getdate())) 

     declare updates_cur cursor 
     for select region 
     from DBA.TEST_IMPORT_CSV 
     OPEN updates_cur 
BEGIN 
/*Header */ 
INSERT INTO DBA.header_balancing(region,store_no,start_date,tran_id,start_hour,start_minute,start_second,employee,freq_shopper,lane_no,tran_no,end_date,end_hour,end_minute,end_second,total_items,total_amount,total_tenders,load_date) 
VALUES (updates_cur.region, updates_cur.store_no, updates_cur.tran_date,'9999999999','23','59','59','999999999','N','999','999999',updates_cur.tran_date,'23','59','59','1',updates_cur.iq_variance_sales,'1',date_Var) 

END 
CLOSE updates_cur 
DEALLOCATE CURSOR updates_cur 
END 
go 
Execute sp_iq_bw_balancing 

回答

0

如果這是Sybase IQ中的光標那麼我認爲你需要做到這一點,1)改變OPENOPEN WITH HOLD。然後FETCH「region,store_no,tran_date,iq_variance_sales INTO @ region,@ store_no,@ tran_date,@ iq_variance_sales」變量的值,然後插入變量值。

此外上方的原始代碼試圖從光標插入四個列(區域,store_no,tran_date,iq_variance_sales)但光標選擇僅包括第一列(區域)

喜歡的東西....上的Sybase IQ

CREATE PROCEDURE sp_iq_bw_balancing 
AS 
BEGIN 
    DECLARE @region VARCHAR 
    DECLARE @store_no VARCHAR 
    DECLARE @tran_date DATE 
    DECLARE @iq_variance_sales VARCHAR 
    DECLARE @date_Var date 

    SET @date_Var = CONVERT(CHAR(10),datepart(yy,getdate())||'-'||datepart(mm,getdate())||'-'||datepart(dd,getdate())) 
    declare updates_cur cursor 
    for select region,store_no,tran_date,iq_variance_sales 
    from DBA.TEST_IMPORT_CSV 
    OPEN updates_cur WITH HOLD 
    FETCH updates_cur INTO @region,@store_no,@tran_date,@iq_variance_sales 
    WHILE (@@sqlstatus = 0) 
    BEGIN 
    /*Header */ 
    INSERT INTO DBA.header_balancing(region,store_no,start_date,tran_id,start_hour,start_minute,start_second ,employee,freq_shopper,lane_no,tran_no,end_date,end_hour,end_minute,end_second,total_items,total_amount,total_tenders,load_date) 
    VALUES (@region, @store_no, @tran_date,'9999999999','23','59','59','999999999','N','999','999999',@tran_date,'23','59','59','1',@iq_variance_sales,'1',date_Var) 
    FETCH NEXT updates_cur INTO @region,@store_no,@tran_date,@iq_variance_sales 
    END 
    CLOSE updates_cur 
    DEALLOCATE CURSOR updates_cur 
END