【问题标题】:Getting error while using two cursors使用两个游标时出错
【发布时间】:2016-11-13 06:06:04
【问题描述】:

使用两个光标时出错

[Error] PLS-00103 (45: 48): PLS-00103: Encountered the symbol 
        "TX_COM_LOCATION" when expecting one of the following:

       := . ( @ % ;
    The symbol ":=" was substituted for 
    "TX_COM_LOCATION" to continue.

请帮忙

【问题讨论】:

  • 创建或替换过程 COM_LOCATION_TXM 开始声明游标 TXM_COM_LOCATION 是从 TBL_SAR_SALAS_1 A 中选择 col1、col2、col3; CURSOR TX_COM_LOCATION 是从 TBL_LOCALES B 中选择 col1,col2,col3; TMP_TXM TXM_COM_LOCATION%ROWTYPE;开始 IF NOT TXM_COM_LOCATION%ISOPEN THEN OPEN TXM_COM_LOCATION;万一;将 TXM_COM_LOCATION 提取到 TMP_TXM; TXM_COM_LOCATION%NOTFOUND 时退出; TMP_TXM TX_COM_COCATION%ROWTYPE;如果不是 TX_COM_LOCATION%ISOPEN 那么
  • 打开 TXCOM_LOCATION;万一; LOOP FETCH TX_COM_LOCATION INTO TMP_TX; TX_COM_LOCATION%NOTFOUND 时退出; BEGIN 插入语句() END;结束循环;结束循环;犯罪;结尾;结束 COM_LOCATION_TXM ; /
  • 抱歉打错了代码..并添加它..

标签: database plsqldeveloper


【解决方案1】:
CREATE OR REPLACE PROCEDURE COM_LOCATION_TXM 
IS
BEGIN 
DECLARE CURSOR TXM_COM_LOCATION IS SELECT col1,col2,col3 from TBL_SAR_SALAS_1 A; 
CURSOR TX_COM_LOCATION is select col1,col2,col3 from TBL_LOCALES B; 
TMP_TXM TXM_COM_LOCATION%ROWTYPE; 
TMP_TXM TX_COM_COCATION%ROWTYPE;
Begin
IF NOT TXM_COM_LOCATION%ISOPEN 
THEN OPEN TXM_COM_LOCATION; 
END IF; 
FETCH TXM_COM_LOCATION INTO TMP_TXM;
EXIT
WHEN TXM_COM_LOCATION%NOTFOUND;

IF NOT TX_COM_LOCATION%ISOPEN 
THEN 
OPEN TXCOM_LOCATION;
END IF;
LOOP FETCH TX_COM_LOCATION INTO TMP_TX; EXIT WHEN TX_COM_LOCATION%NOTFOUND;
BEGIN Insert statement() 
END; 
END LOOP; 
END LOOP; 
commit; 
END; 
END COM_LOCATION_TXM ; 

【讨论】:

    【解决方案2】:

    检查一下:

    创建或替换过程 COM_LOCATION_TXM 开始声明 CURSOR TXM_COM_LOCATION 是从 TBL_SAR_SALAS_1 A 中选择 col1、col2、col3; CURSOR TX_COM_LOCATION 是从 TBL_LOCALES B 中选择 col1、col2、col3; TMP_TXM TXM_COM_LOCATION%ROWTYPE; TMP_TXM TX_COM_LOCATION%ROWTYPE; BEGIN IF NOT TXM_COM_LOCATION%ISOPEN THEN OPEN TXM_COM_LOCATION;万一;循环获取 TXM_COM_LOCATION 到 TMP_TXM; TXM_COM_LOCATION%NOTFOUND 时退出;如果不是 TX_COM_LOCATION%ISOPEN,则打开 TXCOM_LOCATION;万一; LOOP FETCH TX_COM_LOCATION INTO TMP_TX; TX_COM_LOCATION%NOTFOUND 时退出;开始空; -- 用 INSERT 语句结束替换 NULL;结束循环;结束循环;犯罪;结尾; END COM_LOCATION_TXM;

    【讨论】:

    • 不工作,亲爱的......它说[错误] PLS-00201(36:10):PLS-00201:必须声明标识符'TX_COM_COCATION'......不知道为什么
    • 类型名错误:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 2012-06-21
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 2011-09-02
    • 1970-01-01
    相关资源
    最近更新 更多