Oracle

全3479件中41~60件表示
  • oracleのsqlで日付判断

    テーブルに以下の以下の様に日付が登録されています。、 cal_year cal_month cal_day item1 item2 item3 ・・・・・・ : 2019 6 29 2019 6 30 2019 7 1 2019 7 2 ; 2019 7 10 2019 7 11 ; 2019 7 20 2019 7 21 : 2019 7 31 2019 8 1 2019 8 2 : 見ての通り、テーブルに登録されている日付が、年、月、日と各々で 登録されており、また、月と日には、ゼロ埋めされてない値となって います。 因みに、cal_year、cal_month、cal_dayの属性は、varchar2です。 以下のsqlで、日付指定で、システム日付より以降の日付のデータを 取得しようとしているのですが、上手く行きません。 select * from tableA where cal_year||cal_month||cal_day>to_char(sysdate,'FMYYYYMMDD') order by cal_year,to_number(cal_month),to_number(cal_day) ; 今日、2019/7/22でやると、「2019 7 3」以降が出力されます。 また、日付を直接指定するとエラーとなります。 select * from tableA where cal_year||cal_month||cal_day>to_char('2019722','FMYYYYMMDD') order by cal_year,to_number(cal_month),to_number(cal_day) ; 「SQL : ORA-01481: 数値書式モデルが無効です」となります。 何がいけないのでしょうか。 このような使い方はダメなのでしょうか。 それとも、使わない使い方をしているのでしょうか。 お願いいたします。

  • Oracle Nunber型の精度(桁数)について

    Oracleデータベース上のテーブルにNUMBER(1,0)で定義した項目を追加し、 その項目にSQLで値(数値で1、または0)をセットしたところ、「ORA-01438: この列に許容される指定精度より大きな値です」のエラーが発生しました。 同じテーブル上に元々NUMBER(1,0)で定義された項目があり、そちらでは 同じエラーがでません。 何か原因として考えられる事はあるのでしょうか?

  • ORACLEデータについて

    お世話になります。 ORACLEのデータについて教えてください。 DATE型のデータが 2019/06/18 20:50:10 となっています。 このデータを 2019/06/18 と変更する方法はありますか。

  • SQL (ORACLE)について

    こんにちは。 SQL文について教えてください。 【temp1テーブル】 code name value 001 yama 100 002 kawa 200 003 umi 300 【temp2テーブル】 code name value 002 kawa 200 004 minato 500 上記の2つのテーブルtemp1とtemp2を比較して codeの値とnameの値が同じレコードの場合 temp1のvalue値を temp1のvalue + temp2のvalueにする 方法を教えて頂けませんでしょうか。

  • OracleDBへの接続でタイムアウト

    VPNで出先から拠点へ接続する環境(出先ではスマホのテザリングでインターネットへ接続)で、VB2005+Oracle11で構築されたアプリを使用しておりますが、先日、拠点側のインターネット接続の固定IPが変更となり、拠点側のルーターの設定とVPN接続の接続先固定IPの設定を変更致しました。 拠点へのVPN接続自体は問題無く接続され、拠点のサーバへの接続も問題無く接続が出来ておりますが、アプリを起動するとタイムアウトのエラーが出る状況です。 (設定変更前は問題無く起動していた。また、VPN接続している端末は10数台あるが、エラーが発生しているのは1台のみ) そこで、Oracleの設定を疑い、クライアント側でNetManagerにて接続確認したところ、正常に接続が出来ました。 そこで、アプリの接続設定に問題が生じている可能性を疑い、そのクライアント端末を拠点に持ち込んで有線LANで接続したところ、アプリが正常に起動しました。 こうなると原因が何処にあるのか、いまいち判らない状況なので、原因を切り分けする意味でアドバイス等を頂ければ幸いです。 よろしくお願い致します。

  • OracleによるJDKのフォルダパス指定について

    oracle sql developerについて、最初のデータベース接続テストで詰まっています。 現在、初期設定にて、JDKのインストール先を求めるダイアログでフォルダパスを記述すると、 「can not find a Java SE SDK installed at path: C:\ProgramFiles\Java\jdk-10.0.1.」 というエラー文が表示される状態です。 「Browse」ボタンからjdkのフォルダを指定しているため、記述ミスがあるとは思えません。また、関係があるかは分かりませんが、jdkの環境変数等も設定を行なっています。 この場合、上記のエラー文には、どのような対処が考えられるでしょうか? ご回答いただけると幸いです。 バージョン情報は、 Windows 8.1(64ビット) oracle sql developer-4.1.5.21.78 となります。

  • JDeveloperのシェア率について

    オラクルにJDeveloper というフレームワークがあるのですが、 日本で、これはどのくらい使用されているのでしょうか? 使用されている場合は、どのくらいの比率でしょう? 海外の利用をあわせて、教えてください。 また、使用されている場合は、実績をも教えていただけると助かります

  • Varcharについて

    Oracleでは文字列の宣言にVarchar2()を使いますよね 何故、OracleだけVarcharではなくVarchar2なのですか? ※OKWAVEより補足:「Webシステム開発」についての質問です。

  • oracle ファンクションの実行

    oracleでファンクションを作成しております。 このファンクションをVisualBasicより実行しているのですが、 以下のエラーが出力される状況です。 ORA-06550: 行1、列8: PLS-00553: キャラクタ・セット名が認識されません。 ORA-06550: 行0、列0: どのように対処すれば良いか分らず、 どなたか分る方がいらっしゃればご教授頂けますと 幸いです。 ★作成したファンクション CREATE OR REPLACE FUNCTION HINODE.H_HND8010U ( p_in_yoyakuid in varchar2) RETURN varchar2 --********************************************************* --* □ プロシージャ名 --* H_HND8010U --********************************************************* IS vSum varchar2(10); BEGIN vSum := p_in_yoyakuid; RETURN vSum; END; /

  • オラクルデータベースの接続

    オラクル初心者です。 ご存知の方、ご教示頂ければ幸いです。 64bitのWindows10に32bitオラクルクライアントをインストールした場合、64bitのオラクルデータベースにアクセス出来ますでしょうか? サーバー、クライアント共に12.2です。

    • kbtknj
    • 回答数2
  • 2つのDBからマージした結果をSQLで抽出するには

    ■下記の様な2つのデータベースとデータがあった場合に算出結果の様な形でデータを抽出したいのですが、SQLで実装するにはどうすれば良いでしょうか? データベースはOracleを使用しています。 【データベースA】 担当者  商品 担当者A りんご 担当者B りんご 【データベースB】 担当者  商品 担当者A みかん 担当者C みかん ■算出結果 担当者  商品 担当者A りんご、みかん 担当者B りんご 担当者C みかん

    • aa5462
    • 回答数2
  • SQLで1レコード前のデータと比較し計算する方法

    下記の様なデータベースとデータがあった場合に算出結果Xの値を求めたいのですが、 SQLで実装するにはどうすれば良いでしょうか? 商品名 連番 稼働時間   算出結果X 商品A 1  60分  → 60分 商品A 2  90分  → 30分 商品A 3  300分 → 210分 商品B 1  10分  → 10分 商品C 1  20分  → 20分 (計算式) 1件目:前のレコードの商品名が違う場合はそのままで、60分とする。 2件目:前のレコードの商品名が同じ場合は90分-60分で、30分 3件目:前のレコードの商品名が同じ場合は300分-90分で、210分とする。 4件目:前のレコードの商品名が違う場合はそのままで、10分とする。 5件目:前のレコードの商品名が違う場合はそのままで、20分とする。 今まではEXCELでデータを管理しEXCELの関数で算出結果Xの値を求めていましたが、オラクルのDBにデータを格納して計算する方法を検討しています。 宜しくお願いします。

    • aa5462
    • 回答数1
  • oracleでwith句の結果を使ってupdate

    oracleでwith句の結果を使って外部結合?でupdateしたいのですが 上手くいきません。 oracleでは無理なのでしょうか。 よろしくお願いいたします、。 /*---------- with v1 as ( select row_number() over(PARTITION BY ・・・ ORDER BY ・・・) as rnum ,no ,col1 ,・・・ from ・・・ ) update ( select A.col1 A_COL, v1.col2 B_COL from table1 A inner join table2 B on A.cd1=B.cd1 inner join v1 on A.no=v1.no where v1.rnum=1 and ・・・ ) set A_COL=B_COL ; ----------*/ と書いたのですが、 実際に実行してみると、 カッコ「(」、「)」がないとか、 selectが必要とか, A_COLやB_COLが無効ですとか、 となります。 どこが悪いのでしょうか。 oracleではupdateでwithは使えないのでしょうか。 よろしくお願いします。

  • oracle SQL

    売上情報を日別に集計して抽出しようと考えております。 その際に売上が存在しない日のレコードも纏めて抽出したいと考えております。 以下のように日付一覧を副問合せで生成し、left joinすれば良いかと 考えたのですが、結果は売上が存在するレコードしか抽出されません。 下記のSQLでは何が原因で全日付が抽出されないのか分る方がいらっしゃいましたらご教授頂けますと幸いです。 select 売明.商品コード, 売伝.納品日, 月日.全日, -- TO_CHAR(売伝.納品日,'DY') AS 曜日, TO_CHAR(月日.全日,'DD') AS 日, TO_CHAR(月日.全日,'DY') AS 曜日 -- count(売明.商品コード) AS 売上回数 from 売上伝票データ 売伝, 売上明細データ 売明, ( SELECT TO_DATE('20180401', 'YYYYMMDD') + ROWNUM - 1 AS 全日 FROM ALL_CATALOG WHERE TO_DATE('20180401', 'YYYYMMDD') + ROWNUM - 1 <= TO_DATE('20180430', 'YYYYMMDD') ORDER BY 1 ) 月日 where 売伝.納品日 BETWEEN TO_DATE('20180401','YYYY/MM/DD') AND TO_DATE('20180430','YYYY/MM/DD') AND 月日.全日 = 売伝.納品日(+) AND 売伝.売上伝票番号 = 売明.売上伝票番号 AND 売明.商品コード = '009405'

  • 複数行を1レコードにまとめたい

    1つのテーブルでカラムAに個人を特定する情報、カラムBに個人情報の項目、カラムCにその値が設定されています。 カラムBは個人によって登録されている数が異なります。 カラムBから必要な項目を特定して個人を1レコードに集約して抽出したいと思っているのですが、どのようにSQLを作成すればよいでしょうか? 作成してみたSQLでは1レコードに1カラムずつしか値が入らないため、複数行となってしまうのでまとめたいという状況です。 データ カラムA, カラムB, カラムC ------------------------- KOJIN1, AAA, MOJI1 KOJIN1, BBB, MOJI2 KOJIN2, AAA, MOJI3 KOJIN3, BBB, MOJI4 KOJIN3, CCC, MOJI5 select カラムA, case when カラムB = AAA then カラムC end カラムAAA, case when カラムB = BBB then カラムC end カラムBBB from テーブル 結果 カラムA, カラムAAA, カラムBBB ----------------------------- KOJIN1, MOJI1, KOJIN1, , MOJI2 KOJIN2, MOJI3, KOJIN3, , MOJI4 ↑KOJIN1, MOJI1, MOJI2 のように出力したい 初歩的な質問かもしれませんが、よろしくお願いします。

  • Oracle12cとのoo4o接続

    サーバー上のDBが「Oracle 12c(12.2)」です。 クライアントは「Windows7」で「Oracle Client 11.2.0.4」がインストールされている場合、クライアント上のプログラムから、サーバー上のOracleデータベースに「oo4o」で接続できますでしょうか?

    • bci0422
    • 回答数1
  • 大量データ削除中の他処理のパフォーマンスについて

    初心者DBAです。 現在、大量データを削除している裏で別テーブルに対する更新処理のパフォーマンス影響について調べています。 自分が調べた限りではディスクアクセス負荷ぐらいしかパフォーマンスに影響を与える要因はないと考えています。 もし、他にパフォーマンスに影響を与える要因がありましたら教えて頂けると幸いです。 宜しくお願いいたします。

  • なぜ構文エラーにならないのでしょうか?

    oracle12cで下記のSQLを実行すると13という結果が返ってきます。 しかし、内側のSQLは構文エラーとなります。 Select sum_qty as "13日の金曜日" From ( Select key,Sum(qty) sum_qty From ( Select 'a' key,1 qty from dual union all Select 'a' key,2 qty from dual union all Select 'b' key,10 qty from dual ) ) なぜ13という結果が返ってくるのか理由を知りたいです。

    • mokaid
    • 回答数3
  • SQL。項目内のフラグを判断して、SUMしたい。

    やりたいこととしては、ymdとnoとidで一つにデータをまとめ、 各レコードの持つフラグ(a,b)の状態次第(両方trueならば)で、 SUMする項目(num1,num2)を適切に変更したいです。 下記みたいな感じでやってみたものの、まとめ方が悪いらしく期待した答えが出せません。 (何だかんだいじってみても同様、そして、張り付けたSQLは多分エラー。) 考え方が悪いのか、やり方が悪いのか、どなたかご教示いただきたく、よろしくお願いします。 ---------------------------------------- 実行SQL select ymd,no,id, SUM(   case     when max(a) and max(b)       then         num1   else     num2   end ) abc from (   select     '20180423' ymd,1 no,1 id,true a,true b,100 num1,300 num2   union   select     '20180423' ymd,1 no,1 id,false a,true b,200 num1,400 num2   union   select     '20180424' ymd,1 no,1 id,false a,false b,300 num1,500 num2   union   select     '20180424' ymd,1 no,1 id,true a,true b,400 num1,600 num2   union   select     '20180424' ymd,1 no,2 id,false a,true b,500 num1,700 num2 )table_1 group by ymd,no,id ---------------------------------------- 期待している答え ymd,no,id,abc 20180423,1,1,500 20180424,1,1,900 20180424,1,2,700 ----------------------------------------

  • オラクルデータベース抽出方法について

    現在、Oracle11gを使用したデータベースより、データを抽出するSQL文を作成してるのですが、「障害管理情報.受付者」、及び「障害管理情報.二次対応依頼先」がブランクの場合、主キーの一貫番号と一致したデータを抽出する条件を回避するSQL文がうまく動かなくて困っています。 SQL文は、下記と成ります。 SELECT 障害管理情報.管理NO , 障害管理情報.情報区分 , TO_CHAR(障害発生日時, 'YYYY/MM/DD HH24:MI') , TO_CHAR(障害受付日時, 'YYYY/MM/DD HH24:MI') , 障害管理情報.部門 , T_サイト情報.顧客名 , T_サイト情報.サイト名 , 連絡先情報.姓 || ''' ' || 連絡先情報.名 , T_ユーザ情報.姓 || ''' ' || T_ユーザ情報.名 , 障害管理情報.状況 , 障害管理情報.現象 , 障害管理情報.原因 , 障害管理情報.対策 , 障害管理情報.備考 , 障害管理情報.対策完了日時 , T_サイト情報.部門サイトコード , 障害管理情報.受信区分 FROM 障害管理情報 , T_サイト情報 , 連絡先情報 , T_ユーザ情報 WHERE ( CASE WHEN 障害管理情報.受付者コード Is Not Null THEN 障害管理情報.受付者コード Else 連絡先情報.一貫番号 End =連絡先情報.一貫番号) AND (CASE WHEN 障害管理情報.二次対応依頼先コード Is Not Null THEN 障害管理情報.二次対応依頼先コード Else T_ユーザ情報.一貫番 End =T_ユーザ情報.一貫番) このSQL文のCASE条件文で、「障害管理情報.受付者コード」、及び「障害管理情報.二次対応依頼先コード」 がブランク(Null)の場合、「連絡先情報.一貫番号=障害管理情報.受付者コード」、及び「T_ユーザ情報.一貫番号=障害管理情報.二次対応依頼先コード」の条件を回避するように、記述しているのですが、エラーが発生します。「’’T_ユーザ情報"."一貫番号":無効な識別子です。」とのメッセージがでます。何か、記述が間違っているのでしょうか。このCASE条件文でエラーが出ているのは確かです。又、他に良い方法があればご教示願います。 ちなみに、CASE条件文を下記の条件文にすると、うまくいくのですが、「障害管理情報.受付者コード」、及び「障害管理情報.二次対応依頼先コード」がブランク の場合、ブランクが主キー「連絡先情報、及びT_ユーザ情報」の一貫番号にないため、該当するデータが抽出できません。 下記条件文: ( 連絡先情報.一貫番号=障害管理情報.受付者コード ) AND ( T_ユーザ情報.一貫番号=障害管理情報.二次対応依頼先コード )

    • manamr2
    • 回答数1