我正在使用存儲過程將數據插入到使用遊標的臨時表中。 此過程在變量內部存儲動態查詢以裝入插入/更新命令。pl/sql - 在存儲過程中使用動態查詢
這裏是代碼(不是完整的查詢,我剪了一些地區,使其更易於閱讀):
FOR VC2 IN (SELECT C.OBJETIVO,
C.AUDITORIA ,
C.NOME,
C.PRODUTO
FROM CALCULO C)
LOOP
SELECT ' V_UPD NUMBER := 0;
SELECT (SELECT ID_TIPO_TERR
FROM ZREPORTYTD_TMP
WHERE AUDITORIA = ''' || VC2.AUDITORIA || '''
AND TERRITORIO = ''' || VC2.NOME || '''
AND PRODUTO = ''' || VC2.PRODUTO || ''')
INTO V_UPD FROM DUAL;
UPDATE ZReportYTD_TMP
SET TARGET = ' || VC2.OBJETIVO || '
WHERE AUDITORIA = ''' || VC2.AUDITORIA || '''
AND TERRITORIO = ''' || VC2.NOME || '''
AND PRODUTO = ''' || VC2.PRODUTO || ''';'
INTO V_SQL FROM DUAL;
EXECUTE IMMEDIATE (V_SQL);
END LOOP
裏面的動態查詢,在這部分"SET TARGET = ' || VC2.OBJETIVO || '"
價值是Number
類型,它被替換爲「62481,76」。換句話說,這個逗號使得命令錯誤並且不起作用。
有沒有一種簡單的方法來代替「」爲「」?
非常感謝! (:
什麼是OBJETIVO的數據類型? – Chandu 2011-02-15 18:21:39
這是一個數字(38,10)。 – gabsferreira 2011-02-15 18:23:29
然後我不確定爲什麼它會返回格式化值的數字。 – Chandu 2011-02-15 18:24:52