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

PL / SQL関数から「テーブル」を(列名を事前に定義せずに)返す

    強く あなたがこれをしたくないのではないかと疑ってください。 PL / SQLでオブジェクト型を動的に作成し、この種の柔軟性を構築することは、ほとんどの場合、破滅のレシピです。非常に複雑な動的SQLをどこにでも(呼び出し元と関数の両方で)記述してしまうため、コードの読み取りとデバッグがはるかに困難になります。コードが非常に複雑になると、コードを生成するフレームワークを作成する方がよいでしょうが、問題を解決するコードを作成するだけでなく、問題を解決するコードを生成するコードを作成するという、はるかに難しい問題が残ります。

    とはいえ、あなたが本当に、本当に決心していれば、を構築することが可能です。完全に汎用的なパイプラインテーブル関数 。これには、OracleDataCartridgeフレームワークを使用した深いウィザードが含まれます。とてもかっこいいです。しかし、この種のコードを現実的にサポートおよび拡張できる人の数は非常に少ないです。

    少し魔法をかけずに(ただし、事実上すべての組織に提案するよりもはるかに多い)、柔軟なパイプラインテーブル関数 これは、事前定義された型階層から型を返すことに依存しています。これはサポートされる可能性が高いですが、タイプ階層を事前に構築できることを前提としています。




    1. ゆっくりと変化する寸法(SCD)の概要

    2. 特定の行を返すためのSQL自己結合

    3. MSExcelからMYSQLDBにインポートする方法

    4. 実行時にADO.NetDataSetを別のデータベースにポイントしますか?