Oracle

全3478件中181~200件表示
  • SQLでのデータチェック方法

    いつもお世話になっております。 SQLでのデータチェック方法について教えてください。 【売上テーブル】 日付、商品、代理店、金額 ---------------------- 5/1 消しゴム AA商店 100 5/1 鉛筆    BB商店 200 5/2 鉛筆    ZZ商店 200 5/2 万年筆  CC商店 150 【商品マスタテーブル】 品名 ----------- 消しゴム 鉛筆 【代理店マスタテーブル】 代理店 ----------- AA商店 BB商店 CC商店 この中で各種マスタに存在しないデータを抽出したいです。 select * from 売上テーブル where 商品 not in (select 品名 from 商品マスタ) or 代理店 not in (select 代理店 from 代理店マスタ) で抽出できるのはわかるのですが、 抽出結果に何故そのレコードが抽出されたのかをわかるようにしたいです。 日付、商品、代理店、金額  理由 ------------------------------- 5/2 鉛筆    ZZ商店 200 代理店マスタに存在しない 5/2 万年筆  CC商店 150 商品マスタに存在しない このような感じで理由も追加することは可能でしょうか? わがままですみません。 よろしくお願いします。

  • 利用可能なODP.NETを教えて

    ■DBサーバ Windows Server 2003 Oracle 9i R2(9.2.0.1.0) ■アプリケーション動作環境(複数OS) Windows Server 2012 Std(64bit) Windows 7(64bit) Windows 7(32bit) Windows XP(32bit) VB.net(.Net Framework 4.0)(32bitアプリ) 上記のアプリケーション動作環境からOracle 9iR2へODP.NETを使って 接続したいのですが、利用可能なODP.NETのバージョン(何bit版)はど れでしょうか。

  • oracle 文字列 01:45 を時間に変換した

    こんにちは。 現在 oracle11を使用しています。 作業時間 を 文字型で '01:45' として格納したデータを Date型の'1.75'というデータに変換したいのですが、どうしたらできるでしょうか。 ご教授ください。

  • マイクロソフトのジェットエンジン

    ふと疑問に思ったので質問します! マイクロソフトのデータベースはジェットエンジンで動いていますが、オラクルのデータベースのエンジンは何という名前なのでしょうか?また、MYSQLとは別のエンジンなのでしょうか?統合されているのでしょうか?

  • SQL 文字列検索につきまして

    はじめまして。 この質問に関連する内容につきまして、ご回答を頂けたのですが 以下の事項につきまして、追加で質問させて頂きたく存じます。 【過去の質問】 >SQLにて、”指定の文字「-」を検索し、先頭から「-」のひとつ前までを取得”を実現したいのですが、 >これは実現できますでしょうか。(substrやinstrなどでは無理そうなので、お知恵お借りしたいです。) > >例) >01234567-001 >0123456-001 >012345-001 >0123456789-001 > >上記に対して、期待する実行結果は次の通りです。 >01234567 >0123456 >012345 >0123456789 【ご回答】 >select substr(col, 1, instr(col, '-') - 1) >from tbl; >でいいのではないでしょうか。 >'-'が含まれていない場合はnullが返りますので、そのあたりの制御が必要であれば適宜修正してください。 ★追加質問内容 上記のcolがNULL('-'が含まれない)場合に、colのそのままの値を出力という形にすることは可能でしょうか。 例) 01234567-001 0123456-001 012345-001 0123456789-001 0123456  ← 111345   ← 上記に対して、期待する実行結果は次の通りです。 01234567 0123456 012345 0123456789 0123456  ← 111345   ← お手数ですが、ご教示のほど宜しくお願い致します。

  • SQL-文字列操作について

    はじめまして。 SQLにて、”指定の文字「-」を検索し、先頭から「-」のひとつ前までを取得”を実現したいのですが、 これは実現できますでしょうか。(substrやinstrなどでは無理そうなので、お知恵お借りしたいです。) 例) 01234567-001 0123456-001 012345-001 0123456789-001 上記に対して、期待する実行結果は次の通りです。 01234567 0123456 012345 0123456789 こんなことは可能でしょうか。

  • SQL文のWhereについて

    SQL文を分析している最中ですが、以下の構文の意味がわかりません。 where Aテーブル.Aフィールド = Bテーブル.Aフィールド and Aテーブル.Aフィールド = Cテーブル.Aフィールド(+) and Aテーブル.Aフィールド = Dテーブル.Aフィールド(+) この構文の「(+)」の意味を教えて下さい。 宜しくお願い致します。

    • ベストアンサー
    • GONBEBW
    • Oracle
    • 回答数1
  • SQLコマンドの「TO_DATE」について

    SQLコマンドで、下記を実行すると「2014/04/03」などが取得できると思ったのですが、 「14/04/03」で取得してしまいます。 (aaa_dateは、DATE型で、「2014/04/03」などが入ってます) select TO_DATE(aaa_date,'YYYY/MM/DD') from AAA_TBL YYYYをYYにして、下記を実行すると、なぜか、「2014/04/03」と正常に取得します。 select TO_DATE(aaa_date,'YY/MM/DD') from AAA_TBL 逆の気がするのですが、なぜでしょうか。

    • ベストアンサー
    • masa77m
    • Oracle
    • 回答数1
  • SQLで複数列のデータを複数行にしたい

    以下のようなテーブルがあるとします。 column1 a,b,c <- カンマの数は最大50 b,d c,x SQLを実行し以下のような結果を返したいです。 以下の3つのことをすればできそうなのですが複数列を複数行にする方法がわかりません。 1.strtokenで50カラムに分割(カンマ分割) 2. 50カラムを1カラムにする 3.DISTINCTで重複データの削除 結果 a b c d x カンマの数が50あるので、かなり長いSQLになるのですが SELECT文50個をUNIONしてやればできるかなとも考えているのですが 何か良い方法はないでしょうか。 よろしくお願いします。

  • Oracle: PACKAGE BODY の分割

    業務用に10個以上作成したストアドプロシージャ/ファンクションをパッケージとしてまとめようとしています。保守性の観点から、PACKAGE BODY内の各ストアドを、以下のようなイメージで別々のファイルで管理したいと思っています。 が、PACKAGEとBODYの分割はできたものの、BODY内のストアドを別々にすると、エラーとなってしまいます。 そういうことはできないのでしょうか? [xxx_pkg.SQL] CREATE OR REPLACE PACKAGE xxx_pkg IS PROCEDURE procedure_a; PROCEDURE procedure_b; PROCEDURE procedure_c; END xxx_pkg; [xxx_pkg.procedure_a.SQL] PROCEDURE procedure_a IS -- aの処理 END procedure_a; [xxx_pkg.procedure_b.SQL] PROCEDURE procedure_b IS -- aの処理 END procedure_a; [xxx_pkg.procedure_c.SQL] PROCEDURE procedure_c IS -- aの処理 END procedure_c;

  • PL/SQLでPLS-00201のエラー

    初めて質問させていただきます。 よろしくお願いいたします。 Oracle 9i から 11g へバージョンアップしました。 9iでは動いていたPL/SQLコマンドが11gでは 以下のようなエラーが大量に発生します A_FLG Aシノニム名.列名%type ,      * 行16でエラーが発生しました ORA-00201:行16、列13: PLS-00201:識別子(シノニム名).(列名)を宣言してください。 PROCEDURE D_FLG_UPD ( a in varchar2 ) is type D_TYPE is record ( J シノニム名.列名.列名%type ,    ここでエラー   → A_FLG Aシノニム名.列名%type , B_FLG Bシノニム名.列名%type , C_FLG Cシノニム名.列名%type ); G H; begin これはどういった場合に発生するエラーなのでしょうか? またOracleのバージョンによってPL/SQLのコマンドが動かなくなったりすることは よくあることなのでしょうか? よろしくお願いいたします。

  • 64bitのOSからoracle9iに接続

    WindowsServer2008R2(64bit) SQLServer2012 Express からリンクサーバーで WindowsServer2003(32bit) Oracle9i で稼働しているデータベースに接続したいのですが、必要なのは 1:OracleClient11gまたはOracleClient12c 2:Instant Client 3:他 のどれをインストールすればよろしいでしょうか。保持している OracleClient9iをインストールしたのですがインストール自体は 終わっても正常にインストールできないようでOSから入れなおし ました。 Oracleについては初心者なのでどなたかご教授いただけると 助かります。宜しくお願い致します。

  • SQL ORDER BY句に別名を指定

    SQL初心者です。 よろしくお願い致します。 Oracle SQLのORDER BY句で日本語の別名と英字の別名とでは処理速度が変わるのでしょうか。 例えば、給与から控除額を引いて税抜き給与支給額の多い順に並べたい場合に 以下のようなSQLを検討しました。 ORDER BY句にはSELECT内の計算結果の別名を指定しました。 その結果、処理が遅くなる感じがしました。 代わりに、"税抜き給与支給額"をSIKYU_GAKと英字にすると早くなった気がしました。 日本語の別名と英字の別名とでは処理速度が異なるものでしょうか。 SELECT t1.ID AS "社員ID" ,t1.NAME AS "社員名" ,t1.KYUYO AS "給与" ,t1.ZEI AS "税金" ,t1.OTHER AS "その他" ,(t1.KYOYO - t1.ZEI - t1.OTHER) AS "税抜き給与支給額" FROM 社員 t1 ORDER BY "税抜き給与支給額"

  • OracleのMAX

    Oracle9iでvarchar2(3)に半角スペースを含む′01 ′と′002′が存在する場合、MAXでは′01 ′が取れてくるのはなぜでしょう?

  • select文の書き方

    助けてください……(T-T) oracleをつかっていますが、SQLが苦手すぎて、どうしたらいいか分かりません。。。 解決策をご存じの方、教えていただけないで しょうか? テーブルは下記の2つがあります。 (1)Aテーブルの1カラムに、複数の商品IDを格 納している(カンマ区切り) (2)Bテーブルには、商品ID&商品名の一覧が ある このAテーブルの商品ID列に番号から、Bテー ブルの商品名を取得したいです。 ■Aテーブル no | 商品ID 1001 | 1、2 1002 | 1、2、3 1003 | 3 ■Bテーブル 商品ID | 商品名 1 | 商品A 2 | 商品B 3 | 商品C ■とりたいデータの形 1001 | 商品A、商品B 1002 | 商品A、商品B、商品C 1003 | 商品C カンマ区切りで格納しているとin句は使えな いと知りました。。 テーブルにカンマ区切りで格納することは、 変えることはできませんし、 SQLで1回で取得しなきゃいけないのです。 そんなこと、可能なのでしょうか。。 明日の朝までに教えていただければ、 すごくすごく助かります。。 すみませんが、宜しくお願いします。

  • Oracleストアドの互換性について

    Oracleのストアドについて質問です。 32bit版ではコンパイルが通るのに、64bit版ではコンパイルが通りません。 Ora-00918列定義が未確定がでます。 列名ではなく、列番号で指定するとコンパイルが通るようになります。 ただし、きちんと値をとってきていない。 ・Oracle10.2.0.3 x32(windowsServer2003x32)でOK。 ・Oracle10.2.0.5 x64(windowsServer2008x64)ではコンパイルエラーになります。(Ora-00918) 列定義が未確定がでます。 同じくOracle11.0.1x64(windowsServer2008x64)でも同じエラーが出ます。 文字コードはS-JISです。 Oracle10.2.0.5にアップのパッチを当てています。 64bitでなにかあるのでしょうか?

  • oracle sequence

    oracleのシーケンスでdual表からselect文のnextvalで取得したものをインサート したいのですが、ループ内で上記処理を複数回行ったときに、値が一回目以降 更新されずに困っています。 例) for (i=0;i < 5){ (1)セレクト文発行しシーケンスを取得。 (2)取得したシーケンスを変数にセット (3)インサート実行(主キーに取得したシーケンスをセット) } こんな感じで実行したときに、はじめはシーケンスが+1されますが、 それ以降シーケンスが増加しません。そのため、重複エラーが発生してしまいます。。。 どのように対処したらよいのかまったく見当がつきません。 大変申し訳ないのですが、ご教示いただきたくよろしくお願い申し上げます。

  • select文でフリーズします。

    お世話になります。 oracle11.2で とあるテーブルに select * from テーブル名(条件なし) としたらフリーズする現象が起きました。 元々のテーブル内には25万行のデータがあったため 同じ構造で違う名前のテーブル(データは1行もなし)を新規作成して 同じようにselect文をなげたところこちらもフリーズしてしまいました。 構造は約50の列があり 列数を指定して検索した場合、どちらのテーブルも結果が返ってきますが すべての列を指定しようとするとフリーズしてしまいます。 どのあたりを疑えば良いでしょうか? よろしくお願いいたします。

  • 文字リテラルを ' で閉じない場合、何と認識される

    暗黙的型変換で、 nvl2('aaa','iii',111) これは1を文字だと認識してくれますが upper(aiueo) これはエラーになる。 このように明らかに文字リテラルが入る箇所に ' 省略して入力しても暗黙的型変換が実行されないのはなぜ?

  • INSERT文の副問合わせで*は使えますか?

    ORACLE sqlPlusでの話ですが  例えば、 deptno, dname, loc この三つの属性を持つ、dept表、dept_copy表があったとして INSERT INTO dept_copy SELECT * FROM dept WHERE deptno = 10; このような文は通りますか? CREATE TABLE文ではこのような * を利用してもエラーにはならないはずなのですが。