2015-01-13 145 views
-1

我想知道是否有可能與變量和/或在一個塊的開始/結束使用子句「與as」。隨着在甲骨文SQL

我的代碼是

WITH EDGE_TMP 
AS 
(select edge.node_beg_id,edge.node_end_id,prg_massif.longueur,prg_massif.lgvideoupartage,prg_massif.lgsanscable from prg_massif 
INNER JOIN edge on prg_massif.asset_id=edge.asset_id 
where prg_massif.lgvideoupartage LIKE '1' OR prg_massif.lgsanscable LIKE '1') 
, 
journey (TO_TOWN, STEPS,DISTANCE,WAY) 
AS 
    (SELECT DISTINCT node_beg_id, 0, 0, CAST(&&node_begin AS VARCHAR2(2000)) 
    FROM EDGE_TMP 
    WHERE node_beg_id = &&node_begin 
    UNION ALL 
    SELECT node_end_id, journey.STEPS + 1 
    , journey.DISTANCE + EDGE_TMP.longueur, 

    CONCAT(CONCAT(journey.WAY,';'), EDGE_TMP.node_end_id 

    ) 

它創建一個字符串作爲通過分離輸出;但我需要把它作爲變量或表格,你知道嗎?我用一個concat來檢索大字符串中的數據。我是否可以使用表格來插入數據

, 需要使用結果進行更多處理。

謝謝 墊

回答

1

沒有,用的是隻有一個SQL語句的一部分。但如果你描述爲什麼你需要在pl/sql中,我們可以爲你提供一些建議。

編輯:如果你有SQL語句產生你需要的結果,你可以將它的值賦給pl/sql變量。有幾種方法可以做到這一點,最簡單的方法是使用SELECT INTO statement(在您的選擇中添加INTO變量子句)。

您可以使用WITH子句作爲SELECT INTO語句的一部分(至少在不是非常古老的Oracle版本中)。

+0

Oracle 12c確實允許您直接將PL/SQL放入SQL中:http://oracle-base.com/articles/12c/with-clause-enhancements-12cr1.php儘管我不確定這是否合適這裏的想法,或者問題意味着什麼。 –

+0

如何將with select與with語句一起使用? INSERT INTO @my_answer WITH EDGE_TMP AS ... – Mat

+0

我只想從WITH AS結果中檢索答案以使用它 – Mat