問題タブ [table-functions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1956 参照

oracle - パラメータ化されたビュー機能を実装するために Oracle でパイプライン化されたテーブル関数を使用する場合の注意事項は?

クエリで正しい where 述語が常に使用されるよう適切に奨励するために、Oracle の一部の通常のビューに「パラメータ化されたビュー」を重ねることを決定しました。

反復コード (適切に結合されたテーブル) の大部分がビューに表示されるため、共通の結合とフィルターの独自のコピーを使用する多くの異なるプロシージャーと関数を使用する必要がなくなります。

次に、これらのビューにパイプライン化されたテーブル関数をレイヤー化して、ビューが「すべての時間と空間で」呼び出されないように、呼び出し元が必要なフィルターを確実に提供するようにします。私は sys_context と userenv と package 変数を使用する代替案を調べました。それらは Oracle ユーザーがパラメータ化されたビューと呼んでいるように見えますが、ビューが使用されるたびにそれらのシムをビューの周りに配置することは単に実行可能ではなく、再利用できません自己結合します。

StackOverflow を含むさまざまな場所で、これについて多くのことを読みました。

ORACLE 11g のテーブル値関数? (パラメータ化されたビュー)

データベース: パイプライン関数

パイプライン化されたPL/SQL表関数内でSELECTを使用できますか?

これは、多くのクエリが繰り返されて無秩序になったアプリケーションの保守性を改善しようとするアーキテクチャ上の決定です。ビューはある程度は役に立ちますが、呼び出し元に述語を強制して、呼び出し元がばかげたことをするのを止める方法がないのではないかと心配しています。

私は SQL Server でインライン テーブル値関数を使用してこの手法を使用して大きな成功を収めました。コードが少なくなったため、システムの一貫性が大幅に向上し、依存関係と提案された変更の影響を追跡しやすくなりました。 b) より多くの再利用とより少ない繰り返し。

最後のリンクについて少し心配です。これらのパイプライン化されたテーブル関数のいずれかに参加し、それを使用して別のテーブルを更新すると、同時実行性またはタイミングの問題が発生する可能性があることを暗示しているようです。

パイプライン化されたテーブル関数の経験と、私が注意する必要があることを教えてください。また、より良い代替手段がある場合は、あなたの答えでも教えてください。

0 投票する
1 に答える
674 参照

django - SQLテーブル関数から選択するDjango QuerySetの方法

みんな。

私は Django 1.3 と Postgres 9.0 を使用しています。単純なモデル テーブル ルックアップをいくつかの追加フィールドで拡張する非常に複雑な SQL クエリがあります。また、パラメーター化されているため、テーブル関数でラップされています。
raw クエリの助けを借りてなんとか動作させることができた 1 か月前に、RawQuerySet には本当に必要な多くの機能 (フィルター、count() および clone() メソッド、連鎖可能性) が欠けています。
アイデアはシンプルに見えます。QuerySet を使用すると、次のクエリを実行できます。

一方、私はこれを行う必要があります:

質問は次のとおりです。どうすればこれを行うことができますか? 既にカスタム マネージャーの作成を開始しましたが、model.db_table をカスタム文字列で置き換えることはできません (引用されており、データベースが関数呼び出しの認識を停止するため)。
テーブルを関数に置き換える方法がない場合は、RawQuerySet から QuerySet を作成できるかどうかを知りたいです (最もクリーンなソリューションではありませんが、単純な RawQuerySet は体の一部に大きな苦痛をもたらします)。

0 投票する
2 に答える
67 参照

tsql - テーブル関数からのデータを使用したSQLデータのランダム化

「メンバー」テーブルの都市、州、および郵便番号をランダム化するSQLスクリプトを作成しようとしています。別のデータベースからランダムに(ビューを介して)取得した「city」、「state」、「zip」の列を持つ単一の行を返すテーブル関数を作成しました。これにより、現実の世界で実際に相互に関連する都市、州、および郵便番号を確実に取得できます。

そこから私はこのようなことをしようとしています:

問題は、これは私の関数を1回だけ呼び出し、同じ都市、州、およびzipをテーブルのすべての行に配置することです。テーブルのすべての行に対して1回関数を呼び出す方法はありますか?

0 投票する
1 に答える
1621 参照

excel - DB2 から Excel を読み取る

定期的に Excel データをインポートする必要があります。DB2 のドキュメントを確認すると、外部関数を介して OLE DB データソースに直接アクセスできます。

しかし、私はそれを正しく設定することができません。Microsoft Access Database Enginge 2010とフィックスパックを入手し、データベース サーバーにインストールしました。

データベース サーバーのローカル ディレクトリに Excel ファイルを配置しました。( C:\Temp\test.xls)

TEST1Excel には、 2 つの行ABCDEF次の数値データという名前のワークブックがあります。

テーブル関数を作成するために、次のステートメントを使用しました。

その機能を生み出しているようです。ただし、次の方法でデータをクエリする場合:

次のエラーが表示されます。

ユーザー定義関数 "MYSCHEMA.TEST_EXCEL" は、指定された OLE DB プロバイダーから OLE DB エラーを受け取りました。HRESULT="0x80040e37". 診断テキスト: "Microsoft Access データベース エンジン".. SQLCODE=-1183、SQLSTATE=38506、DRIVER=3.53.71

ドキュメントによると、エラーの意味は次のとおりです。0x80040E37 The specified table does not exist.

ワークブックを参照する!TEST!必要がありますが、正しい構文かどうかはわかりません。DB2 から Excel ワークシートにアクセスするにはどうすればよいですか? より詳細なエラー メッセージを取得する方法はありますか? 誰かが正しい命名スキームを持っていますか?

0 投票する
2 に答える
2157 参照

sql - postgresqlの「tablefunc」クエリにnull値を含める方法は?

でクロス集計関数を使用しpostgresqlpivot table. ただし、クエリ内で SQL を構造化する方法を理解するのに苦労しています。私のデータは 4 つの列で構成され、次のようになります。

ここに画像の説明を入力

次のコードを使用してこのテーブルを作成します。

postgresqlドキュメントに厳密に従って、クエリで次のコードを使用しますcrosstab

これにより、次の表が得られますが、これは私が望んでいるものではありません。

ここに画像の説明を入力

たとえば、行 2 では、次の値が必要です。

代わりに、値は次のとおりです。

ただし、値が無視されているように見えるため、から までnullの列名は元のグループに対応していません。g1g8

0 投票する
1 に答える
2554 参照

oracle - Oracle PL/SQL のコールバック関数

PL/SQLでデータ変換/処理を行っていますが、パッケージから重複コードを排除したいと考えています。これは関連するコード部分です。

表関数の入力タイプ:

1 つのレコードを処理する手順:

カーソルを反復処理し、カーソル内の各行を処理し、出力 (存在する場合) をパイプ処理する表関数:

変換/処理にはいくつかのステップがあります。たとえば、次の選択を実行して、いくつかの処理を行い、特定の順序でいくつかのルールを適用します。

これはすべてうまくいきますが、唯一の問題は、私の trip_rule パッケージに多くのapply_*_rule関数が含まれていることです。それらはすべて例に似ていますapply_discontinuity_rulediscontinuity_rule唯一の違いは、コールバックする実際のプロシージャ ( ) です。

だから、私の質問は、どうすればapply_*関数のコードをコピーするのを避けることができるかということです. これを行うためのよりエレガントな方法はありますか?大きなifを使用します:if p_rule_name == 'discontinuity_rule' then

また、プロシージャ名を使用して匿名の PL/SQL ブロックをオンザフライで作成し、動的 ​​SQL として実行できることも理解しています。自分のパフォーマンスを犠牲にせずに、ちゃんとできるだろうか。どんなアイデアでも大歓迎です。

0 投票する
1 に答える
2992 参照

sql - パラメータを持つサブクエリ内でSQL関数を使用する

機能する次のクエリがあります。

ただし、最も内側の select ステートメントで関数を使用して適切な値を返す必要があります。私は次のようにクエリを書きました:

このクエリは常に「'.' 付近の構文が正しくありません」で失敗します。これは、関数に渡される u.hmy および t.hmyperson に関係しているようです。これらの各パラメーターに実際の値を入力すると、正常に機能します。

誰かが私が間違っていることを教えてもらえますか? クロス結合の使用についての言及を見たことがありますが、その方法がわかりません。

ありがとう!!

0 投票する
1 に答える
752 参照

sql - 関数は空のセットを返します

SQL 2008 で関数を正常に作成しました。

問題は、関数を呼び出すときです。

結果が出ません。私が得るのは、関数で参照される列ですが、データはありません。関数から select ステートメントをコピーし、@ColName の有効なパラメーターを指定して実行すると、結果が得られます。

0 投票する
0 に答える
43 参照

sql-server - テーブル関数と組み合わせて TOP() を使用する方法

私はこのようなことをしようとしています:

問題は、エラー メッセージが表示されることです。

これを機能させる方法。助けてください。