問題タブ [oracle8i]

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 投票する
2 に答える
206 参照

sql - 行出力を制限する

クエリから出力する必要があるものの正しい構文を理解するのに苦労しています。

これが私のデータです (いいえ、これらは正しい列名ではありません。読みやすくしようとしています) 取得している実際のテーブルには 26 列のデータがあります。

したがって、選択ルールは次のとおりです。
タイプが P の場合、そのレコードを選択します
従業員に P レコードがない場合は、S を選択します
従業員に複数の S レコードがある場合は、より低いレコード番号を選択するか、部門が 400 ではないレコードを選択します (400 行) Sレコードが 1 つしかなく、Dept が 400 の場合、行が返されます

これは現在機能しているものです:

そして、私がやりたいことは、最後に「limit = 1」(または同様のもの)を配置することです。これにより、複数の S 行の場合、より低い recordNumber が返される行になります。

上記のデータから返されるレコード セットは次のとおりです。

泥のように透明ですよね?

エラーが発生し続けます。私が見逃している「簡単な」方法はありますか?

ご協力いただきありがとうございます。

ミシェル

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

ssis - SSIS から Oracle 8i と 11g を接続する

現在のプロジェクトでは、SSIS を使用して Oracle 8i および 11g に接続してデータを取得しています。しかし、oracle 11g ドライバーは 9i からしか互換性がないことを知りました。

SSIS を 11g と 8i の両方に接続するための最も実現可能なソリューションは何ですか? ご提案いただきありがとうございます。

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

oracle - pl/sqlブロックの副選択でのOracle8i動的SQLエラー

DMLステートメントの影響を受ける行をフェッチするOracle関数(8i用)を作成し、PostgreSQLからのRETURNING*の動作をエミュレートしました。典型的な関数呼び出しは次のようになります。

SELECT tablename_dml('UPDATE tablename SET foo = ''bar''') FROM dual;

この関数はテーブルごとに自動的に作成され、動的SQLを使用して引数として渡されたクエリを実行します。さらに、クエリを動的に実行するステートメントもBEGIN..ENDブロックでラップされます。

EXECUTE IMMEDIATE 'BEGIN'||query||' RETURNING col1, col2 BULK COLLECT INTO :1, :2;END;' USING OUT col1_t, col2_t;

この奇妙な構造の背後にある理由は、複数の行に影響を与えるDMLステートメントから値を取得する唯一の方法のように思われるためです。col1_tとcol2_tはどちらも、テーブルの列に対応するタイプのコレクションとして宣言されています。

最後に、問題に。渡されたクエリに副選択が含まれている場合、関数を実行すると構文エラーが発生します。以下は、これを説明するための簡単な例です。

最後のステートメントは次のエラーを生成します:(そこに記載されているSELECTはSELECTmin(id)です)

ORA-06550:1行目、32列目:PLS-00103:次のいずれかが必要な場合に記号「SELECT」が発生しました:(-+ mod not null others avg count current presents max min previous sql stddev sum Variance execute foralltimeタイムスタンプ間隔日にち

この問題は8i(8.1.6)で発生しますが、10gでは発生しません。BEGIN .. ENDブロックが削除されると、問題は解消されます。クエリの副選択が他の何か、つまり定数に置き換えられると、問題は解消されます。

残念ながら、私は8iで立ち往生しており、BEGIN .. ENDを削除することはできません(上記の説明を参照してください)。

ここで、特定のOracle 8iの制限がありますか?動的SQLでそれを克服することは可能ですか?

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

oracle - Oracle 8i で PLS-00382: 式の型が間違っていますが、表示されません

次のコードは、AskTom のよくあるスレッドExport to CSVに基づいています。

埋め込まれたコンマと引用符を処理するために、内側のループにコードを追加して元のスクリプトを修正しました。

Oracle 8i でコンパイルできません。

DBA Studio を使用して utl_file_dir の値を設定しました。次に、SQL*Worksheet を使用してスクリプトを実行しました。報告されたエラーは、46 行目に問題があることを示しています。

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

oracle - Oracle8iでの一括エクスポート

oracle cliで実行できるコマンドを使用してOracle8iデータベースからデータをエクスポートするにはどうすればよいですか?私の最大の問題は、使用するクエリに基づいてデータをエクスポートする必要があることです...たとえば、

select * from emp where emp_id>4

emp_id>4のレコードをダンプする必要があります。

関数を使用する権限がありません。助けてください!!

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

sql - サブクエリは複数の値を返します

私は与える次のクエリを持っていますreq_no and order_noorder_noは、以下のsqlから確認できるsub_queryからのものです。いくつかのreq_no場合、複数ありorder_no's、そのために私は得ORA-01427: single-row subquery returns more than one rowます。

order_no両方を1つに表示したいのですがreq_no、どうすればこれを実現できますか?どんな助けでも非常に高く評価されます。

ありがとう

PS私たちのクライアントの1つのデータベースはまだOracle 8iです。

Update 1

望ましい出力。

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

database - より良いアプローチと欠陥の観点からコードを改善する

アカウントを調整するために API (クライアントが提供) を呼び出すために使用している次の PL/SQL コードがあります。

このブロックを書く際に何か問題があったり、より良い方法やアプローチがあれば、コードを改善したいと思います。

PS 残念ながら、私たちのクライアントはまだ製品に Oracle 8i を使用しています。

PLSQLコード

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

sql-server - SQLServerおよびORACLEのSTUFF関数

このトピックについて2つのSTUFF質問があります。

最初の質問はSTUFFSQLServerの機能です。2番目の質問はSTUFF、Oracle(8i)の関数についてです。

,質問1:詰め込みたい列からを削除するにはどうすればよいですか?

例、与えられた表:

このスクリプトを使用すると、次のようになります。

結果を削除して表示のみを表示するにはどうすればよいRed wineですか(コンマ(、)を削除しますか?)

注意:私はこのSTUFF関数を書きませんでした。それはOMGポニーという名前の誰かによって書かれています。

質問2:質問1と同じですが、構文はOracleにあります。

結果だけを表示したいRed wine(コンマ(、)を削除)。

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

sql - パフォーマンスの向上

私はSQLのショートカットに精通していないので、ここでの頭脳を活用して、使用しているクエリを高速化することを望んでいました。現在、Oracle8iを使用しています。

質問があります:

これには約7分かかり、実行には10秒かかります。

現在、GPS_TABLEは6.586.429行であり、新しいGPS座標がシステムに追加されるにつれて増加し続け、毎日6列で約8.000行増加します。

現在ACTIVITY_TABLEは1.989.093行であり、新しいアクティビティがシステムに追加されるにつれて増加し続け、毎日31列で約2.000行増加します。

したがって、これらはすべて小さなテーブルではなく、このクエリまたは同様のクエリを実行すると常にタイムヒットが発生することを理解しています。ご覧のとおり、私はすでに過去2日間分のデータに制限していますが、それを高速化するために何かをいただければ幸いです。

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

oracle - 結合構文を使用したOracleの更新

私はOracle8iPL /SQLを初めて使用します。PL/SQLの簡単な更新を手伝ってください。T-SQLには精通していますが、PL/SQLでは混乱しています。

どんな助けもいただければ幸いです、

Rgds Affan