sql >> Databáze >  >> RDS >> Oracle

Jak vytvořit sloupec CLOB ve skupině podle výrazu? Nějaká práce kolem?

Zde je syntaxe, kterou byste mohli chtít použít pro svůj požadavek:

Syntaxe:

DBMS_LOB.SUBSTR (lob_loc, amount, offset)

Parameter Description 
lob_loc: Locator for the LOB to be read i.e CLOB column name. 
amount: Number of bytes (for BLOBs) or characters (for CLOBs) to be read. 
offset: Offset in bytes (for BLOBs) or characters (for CLOBs) from the start of the LOB (origin: 1). 

Takže váš poslední dotaz by měl znít nějak takto,

    SELECT
    Test_Case_Name,
    DBMS_LOB.SUBSTR(Test_Case_Description,2000,1) as Test_Case_Description,
    Test_Case_Status,
CASE WHEN Test_Case_Status = 'FAILED' THEN
    LISTAGG(LN.LN_BUG_ID,', ') WITHIN GROUP(ORDER BY LN.LN_BUG_ID)
END AS Defect_ID
FROM Test LEFT JOIN LINK LN ON
    LN.LN_ENTITY_ID=Test.TS_TEST_ID
GROUP BY
    Test_Case_Name,
    Test_Case_Description,
    Test_Case_Status

Protože se obáváte, abyste neztratili data po 4000 znacích, navrhuji rozdělit sloupec a zobrazit jej níže..

SELECT
    Test_Case_Name,
    DBMS_LOB.SUBSTR(Test_Case_Description,4000,1) as Test_Case_Description1,
    DBMS_LOB.SUBSTR(Test_Case_Description,8000,4001) as Test_Case_Description2
    Test_Case_Status,
CASE WHEN Test_Case_Status = 'FAILED' THEN
    LISTAGG(LN.LN_BUG_ID,', ') WITHIN GROUP(ORDER BY LN.LN_BUG_ID)
END AS Defect_ID
FROM Test LEFT JOIN LINK LN ON
    LN.LN_ENTITY_ID=Test.TS_TEST_ID
GROUP BY
    Test_Case_Name,
    Test_Case_Description1,
    Test_Case_Description2,
    Test_Case_Status


  1. Vložte obrázek PictureBox do databáze SQL Server

  2. Opakované opakování stejné proměnné vazby při použití dynamické struktury SQL OPEN...FOR v Oracle PL/SQL

  3. MySQL - Můžeme místo názvu seřadit podle pozice sloupce?

  4. Souběžné provádění více transakcí JPA