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

Spojte více řádků do jednoho sloupce pomocí funkce v Oracle se 3 souvisejícími tabulkami

Musíte změnit svou funkci, aby se podobala:

CREATE OR REPLACE FUNCTION f_test(IN_ID IN TABLE_C.a_id%TYPE) 
RETURN VARCHAR2 
IS

  l_text  VARCHAR2(32767) := NULL;

BEGIN

  FOR cur_rec IN (SELECT b.b_name 
                    FROM TABLE_B b
                    JOIN TABLE_C c ON c.b_id = b.b_id
                   WHERE c.a_id = IN_ID) LOOP
    l_text := l_text || ',' || cur_rec.b_id;
  END LOOP;

  RETURN LTRIM(l_text, ',');

END;

Potom můžete použít:

SELECT a.a_name, 
       f_test(a.a_id)
  FROM TABLE_A a


  1. Jak exportovat řetězec Base64 do souboru na straně serveru, aniž byste jej ukládali na webový server, přímo pomocí PHP?

  2. Jak mohu získat hodnoty z jedné tabulky do druhé pomocí podobných hodnot?

  3. V MySQL existuje nějaká funkce jako úroveň v Oracle

  4. Jak používat fyzické umístění řádků (ROWID) v příkazu DELETE