sql >> データベース >  >> RDS >> Oracle

Oracle関数:wm_concatを複製します

    wm_concatを使用するとエラーメッセージが表示されますか?to_charのような関数とは異なり、wmsysが所有しているため、wmsys.wm_concatを使用する必要がある場合があります。 (もちろん、必要な同義語を作成しない限り)

    さて、実際の質問です。

    この手法は文字列集約と呼ばれます。

    ここには他にもたくさんの選択肢があります。

    http://www.oracle-base.com/articles/ 10g / StringAggregationTechniques.php その他の方法については、http://asktom.oracle.com で「stragg」を検索してください。 別の便利なリンク: http://www.orafaq.com/node/2290

    これはおそらく最も使用されているものです。多くのチームが、多かれ少なかれ同じことを行う独自のカスタム関数を作成しています。

    CREATE OR REPLACE FUNCTION get_employees (p_deptno  in  emp.deptno%TYPE)
      RETURN VARCHAR2
    IS
      l_text  VARCHAR2(32767) := NULL;
    BEGIN
      FOR cur_rec IN (SELECT ename FROM emp WHERE deptno = p_deptno) LOOP
        l_text := l_text || ',' || cur_rec.ename;
      END LOOP;
      RETURN LTRIM(l_text, ',');
    END;
    /
    SHOW ERRORS
    

    このソリューションはvarchar2とnumberに対して機能しますが、最適な汎用ソリューションはOracleODCIAggregateインターフェースを使用して構築できます。

    http:// download-west .oracle.com / docs / cd / B14117_01 / appdev.101 / b10800 / dciaggfns.htm#sthref462

    同じものの実装は、上記の最初のリンク(www.oracle-base.com

    )にあります。

    1. チェックボックスの条件が変更されたときにajaxを使用してmysqldbを更新するにはどうすればよいですか?

    2. 名前付きパラメーターの順序は、MySql .Netデータプロバイダーにとって意味がありますか?

    3. SQLINステートメント-結果を返すときに重複を保持する

    4. IllegalArgumentException:タイプをnullにすることはできません