回答数
気になる
-
等しくないデータの抽出
テーブル1のフィールドa テーブル2のフィールドa を比較してテーブル1のフィールドaの中にテーブル2のフィールドaと中と重ならないものをだしたいのですが、SQLはどう書けばいいでしょうか。 (例題は数値ですが実際は文字列です) テーブル1 A 1 2 3 4 5 6 7 8 9 10 テーブル2 A 1 2 3 4 5 結果 6 7 8 9 10
質問日時: 2011/02/16 14:14 質問者: obone
ベストアンサー
2
0
-
ダイレクトインサートでテーブル作成時カラム長を指定
oracle10g standard 下記のようなsqlでviewをtable化するとvarchar2のカラム長が固定で4000になります。 長さを指定することはできますか? create table test as select * from view;
質問日時: 2011/02/15 09:59 質問者: a4ygafgsfga
解決済
1
0
-
OracleTextの索引再構築について
Oracle10gを使っています OracleTextの索引はレコードの挿入や更新では自動的に更新されないとのことですが、それではどのタイミングで更新するのが適当なのでしょうか? サーバーの性能にも左右されるのでしょうが、できればレコードの挿入等の度に索引の再構築をしたいのですがパフォーマンスに問題ありでしょうか。 ちなみに、テーブルは1つ、索引をつけているカラムは6つ、それぞれ500文字程度の日本語、1時間に10件程度のレコード挿入です。挿入のたびに BEGIN CTX_DDL.sync_index('索引名'); END; を実行します。 また、再構築が同時に発生した場合はなにが起こるのでしょうか。 分かりにくい文章で申し訳ございません。テスト環境がないため本番環境で開発しているので自分で試してみることができず困っています。よろしくお願いします。
質問日時: 2011/02/11 07:16 質問者: akomot
ベストアンサー
1
0
-
RMANのスクリプトについて教えてください。
オラクル初心者です。 1 EMからバックアアップジョブ作成でそのままバックアップを実行しようとしてもスクリプトの書式などがまちがっていることがあるのでしょうか?ジョブを作成してディクスにバックアップしようとしても失敗したのですが。 2 rman target / @${script}の形式で実行するscriptファイルの中身は RUN {} で囲まれた書式のスクリプトでないとエラーになるのでしょうか? いままで backup device type disk tag '%TAG' database include current controlfile; backup device type disk tag '%TAG' archivelog all not backed up delete all input; allocate channel for maintenance type disk; delete noprompt obsolete device type disk; release channel; のようにコマンドを直書きしていたのですが。
質問日時: 2011/02/10 09:28 質問者: purin2010
解決済
1
0
-
Oracle to_dateのyyyy/mm/dd
to_dateを以下のように使用した場合、正確なdate値(2011年2月1日)を取得できるのでしょうか。 select to_date('2011/2/01','yyyy/mm/dd') from dual; 自分で検証できる環境が無い(コマンドが叩けない)ので質問させていただきました。 (できればoracle8i環境で分かると助かります。) よろしくおねがいいたします。
質問日時: 2011/02/09 22:05 質問者: papaya20111
解決済
3
0
-
「BEGIN」などの使い方について
データベースで「BEGIN」、「CREATE_FUNCTION」おかあると思いますが何ができるのでしょうか? SQLファイルとかに記述するような感じですか? 例えば上記のものを使ってシステム日付を取得してSQLを発行して得たデータのファイル名に日付を持たすなんていうこともできますでしょうか?
質問日時: 2011/02/07 23:31 質問者: mr-r00
ベストアンサー
2
0
-
ベストアンサー
4
0
-
Oracle RACについて
商用用のLinuxでOracle RACにてOracleを負荷分散する場合最大何台サーバーを並列に繋ぐことができるのでしょうか。
質問日時: 2011/02/06 12:23 質問者: basi999
ベストアンサー
1
0
-
ORACLE SQL 教えてください。
オラクルSQLの初心者です。 (1)のテーブルから (2)のテーブルを作成する方法はありますか?教えて下さい。 (2)のテーブルを元に他のテーブルの色々な値を取得したいです。 (1) TEMP1 -------------------------- CODE YEAR_START YEAR_END -------------------------- 01 08 11 02 08 09 03 11 11 (2) TEMP2 --------------------- CODE YEAR --------------------- 01 08 01 09 01 10 01 11 02 08 02 09 03 11
質問日時: 2011/02/06 02:52 質問者: hikomi
解決済
1
0
-
「%」をつけて動的に表示
Oracleで 「%1○%2○○」 というデータがあり、"%1"や"%2"に対応する値を渡して、メッセージを表示するプログラム(Javaなど)があります。 こういったデータや手法の名前を教えてください。 "%"が原因なのか、ググっても全く情報がありません。
質問日時: 2011/02/05 01:37 質問者: myst_scientist
解決済
3
0
-
SQL*LoaderのDATA引数
Shellからsqlldrコマンドを実行する際に複数のロードファイル名を引数として渡したい。 しかし、コマンドラインから実行する際にデータ引数は複数指定できないと言われます。 ということは、制御ファイル内のINFILEに複数ファイル名を指定しないといけないと思うのですが、 ロードファイル名は固定ではなく、複数の場合もあれば1つの場合もあります。 詳しく説明させていただきますと、Shellで他のFTPサーバーから取得したCSVのフルパスをすべて取得しそれを制御ファイルのINFILEに渡したいのです。 なにか良い方法はありますでしょうか? ご存知の方がいればご教示いただきく存じます。 よろしくお願いいたします。
質問日時: 2011/02/04 19:49 質問者: anman0201
解決済
1
0
-
ShellでSQL*loaderのエラー処理
掲題のとおりですが、 どのように記述したらよいのでしょうか sqlldr userid=scott/tigar@DB control=AAA.ctl log=BBB.log ⇒ここでエラーの有無を取得したい どなたかわかる方いればお願いします。
質問日時: 2011/02/04 17:54 質問者: anman0201
解決済
2
0
-
LEFT JOINの条件式で=’’を使用した場合
以下のSQLを実行した場合、レコードを1件取得して欲しいのですが、 なぜか上手く取得できません。 ご存知の方がいらっしゃいましたら、教えてください。 -- SQL1 --------------------------------------------------- select MAIN.MAIN_NAME, nvl(SUB1.CODE is NULL, 0) as SUB_CODE1, nvl(SUB2.CODE is NULL, 0) as SUB_CODE2 from MAIN_TABLE MAIN left join SUB_TABLE SUB1 on MAIN.CODE = SUB1.CODE and SUB1.ZYOUKEN = '1' (1) left join SUB_TABLE SUB2 on MAIN.CODE = SUB2.CODE and SUB2.ZYOUKEN = '' (2) where MAIN.CODE = 'XXX' ----------------------------------------------------------- 質問1. どうも、(2)の部分を空文字(?)ではなく何か値を入れると正常に1件 取得できるようなのですが、なぜ外部結合しているにもかかわらず 0件になってしまうのかが良く分かりません。 質問2. やはり条件に空文字を使用するのはよろしくないでしょうか? ※補足 念のため、以下のSQLを実行したところ、こちらは問題なく1件取得 できているので、抽出条件は間違っていないです。 -- SQL2 --------------------------------------------------- select MAIN.MAIN_NAME from MAIN_TABLE MAIN where MAIN.CODE = 'XXX' ----------------------------------------------------------- 以上です。宜しくお願いします。
質問日時: 2011/02/04 15:54 質問者: mirumiru36
ベストアンサー
5
0
-
SQL*Loader Append
SQL*Loaderのコントロールファイル内のパラメータ設定についてですが、 ネットで調べた結果 ロード方法をAPPENDとすると既存データがある場合は新しい行として追加とあるのですが、 これはテーブルのPKが重複していても新しく行がついかされるということでしょうか? 逆にREPLACEはPKが重複しているデータに上書きされるということでしょうか? よろしくお願いいたします。
質問日時: 2011/02/04 12:40 質問者: anman0201
ベストアンサー
3
0
-
処理の結果レコードがなかった場合について
いつもお世話になっております。 Oracle11gと.NET C#で開発をしている初心者です。 下記の様なInsertの構文を書きました。 結果、c_1にInsertするレコードが無かった場合、 out_val := 0; としたいのですが、 その書き方が分かりません。 色々試したのですが、 出来ませんでした。 本当に初歩的な質問なんだと思うのですが、 ご教授頂きたく、宜しくお願い致します。 記 create or replace procedure dbInsD売上予測 ( out_valoutpls_integer ) as CURSOR c_1 is select 注文NO,受注NO,売上日,品番,数量,登録日時,登録者 FROM D売上台帳 a WHERE NOT EXISTS(SELECT * FROM D売上予測 b WHERE a.受注NO = b.受注NO); begin for r_emp in c_1 loop if c_1%FOUND then INSERT INTO D売上予測 ( 注文NO,受注NO,売上日,品番,数量,登録日時,登録者 ) values( r_emp.注文NO,r_emp.受注NO,r_emp.売上日, r_emp.品番,r_emp.数量,r_emp.登録日時,r_emp.登録者 ) ; end if; end loop; out_val := sql%rowcount; end;
質問日時: 2011/02/02 10:03 質問者: miruchoko
ベストアンサー
2
0
-
ShellからTruncate【Linux】
現在、ShellでSQL*PLUSを起動し、 テーブルをTruncateしようとしているのですが、 直接コマンドで実行すると可能なんですが、Shellで実行すると接続してすぐに切断されSQLが実行されません。 <Souce> ora_pass=TEST/TEST@DB log_pth=/home/oracle/TEST/04_log/ scrLOG=${log_pth}SHELL.log echo "S" sqlplus $ora_pass <<EOF > $scrLOG truncate table W_BSL_INV; EOF echo "E" ちなみにSelect文はscrLOGに正常に出力されます。
質問日時: 2011/02/01 15:40 質問者: anman0201
ベストアンサー
1
0
-
Insertの質問
いつもお世話になっております。 Oracle11gとC#.NETで開発している初心者です。 ストアドプロシージャによるテーブルからテーブルへの インサートがうまくいかず悪戦苦闘しております。 下記の様な記述をしており、コンパイルは通ったのですが、 D売上見通台帳のIDをプライマリーキーにしており、 実際.NETで動かしてみると、一意制約違反でエラーとなって しまいます。 どなたかご親切な方ご教授頂きたく、 宜しくお願い申し上げます。 記 create or replace procedure dbInsert台帳追加 ( out_valoutpls_integer ) as cursor cur is SELECT 注文主,受注NO,売上日,品番,品名,数量, 登録日時,登録者 FROM D売上台帳 WHERE 売上日 = TO_CHAR(sysdate,'YYYY/MM/DD') ; cur_rec cur%rowtype; begin open cur; loop fetch cur into cur_rec; exit when cur%notfound; INSERT INTO D売上見通台帳 ( ID,注文主,受注NO,売上日,品番,品名,数量, 登録日時,登録者,更新日時,更新者 ) VALUES ( seqD売上台帳ID.nextval,cur_rec.注文主,cur_rec.受注NO,cur_rec.品番,cur_rec.品名, cur_rec.数量,cur_rec.登録日時,cur_rec.登録者,cur_rec.更新日時,cur_rec.更新者 ) ; end loop; close cur; out_val := sql%rowcount; end;
質問日時: 2011/01/31 22:42 質問者: miruchoko
ベストアンサー
4
0
-
ユニークインデックスについて
仕事の関係で、テーブル定義の際にユニークインデックスをどの列の組み合わせにするのか考える必要があるのですが、今までユニークインデックスの存在自体知らず、困っています。 自分自身でネット等で調べた結果以下のことは理解できました。 1.ユニークインデックスで指定された列は値が一意でなければならない。 2.主キーの列にはNULL値は不可だが、ユニークインデックスの列はNULL値も可。 3.主キーは一つのテーブルにつき、一つしか設定できないが、 ユニークインデックスは複数設定できる。(同じ列は指定できない) 4.主キー設定時、実は暗黙的にユニークインデックスとNOT NULL制約が作成されている。 ここまでは分かったのですが、主キーとは別で、明示的にユニークインデックスを指定する必要性とはなんなのでしょうか? 主キーとは別で明示的に指定した方が良い場合と、その実例をどなたか教えて頂けないでしょうか? よろしくお願いします。
質問日時: 2011/01/30 14:42 質問者: kametora0331
ベストアンサー
4
0
-
オラクルマスターについて
オラクルマスターの取得を計画していますが、ゴールド、プラチナの受験の時に気になることがあります。 両資格を取得条件時には、必ずセミナー受講が必須とあります。 ただ、上司の方から聞いた話によりますとセミナー受講は必須ではなく、高い受講料金を払わなくても取得は可能であるとも聞きます。 真意のほどどうなのでしょうか?オラクルマスターの保有者の方はセミナーは受講されたのでしょうか?
質問日時: 2011/01/29 21:55 質問者: CRZXXXXX
解決済
2
0
-
sqlのテーブル名省略について
内部SQLで使用している「employee」表を「emp」とし、内部SQL実行結果を「emp」としています。 この場合、大外のSQLで使用している「emp」は、「emploheeを指すemp」か、「内部SQL実行結果を指すemp」なのかわかりません。 ご教授よろしくお願いします。 select emp.name, emp.year, emp.day from (select name, year, day from employee emp where ~ GROUP BY name, year, day) emp where ~ GROUP BY emp.name, emp.year, emp.da /
質問日時: 2011/01/27 10:53 質問者: neetter
ベストアンサー
1
0
-
ORACLE10g VIEW UNION
VIEW同士をUNIONすることは可能でしょうか? というより、実行してみたのですが、データ型が一致していない列があり出来ませんでした。 View作成時にのデータ型を設定する方法などはあるのでしょうか? 識者の方がいればご教示いただきたいです。 よろしくお願いいたします。
質問日時: 2011/01/26 15:37 質問者: anman0201
ベストアンサー
2
0
-
マテビューのNOTNULL設定について
いつもお世話になっています マテリアライズドビューを作成しました。 抽出等は正しく動作しているのですが、Key(TBLMV_TENCD,TBLMV_KAICD)に設定した項目以外は NOTNULLが”YES”になってしまっています。 以下の処理をどのように変更すればよいか、教えて頂けないでしょうか? よろしくお願いします。 (ORACLE10を使用しています) (TBLA、TBLB、TBLC共に全項目NOTNULL="NO"になっております) ※ALTERで行うような気がするのですが、もしそうだとしてもどのように変更すればいいのか検討がつきません(新規にALTER文を追加するなら出来そうですが、まとめることが出来ないかと思い質問させて頂きました) CREATE MATERIALIZED VIEW TBLMV BUILD IMMEDIATE USING NO INDEX REFRESH FORCE ON DEMAND AS SELECT TBLA_TENCD AS TBLMV_TENCD , TBLA_KAICD AS TBLMV_KAICD , TBLA_KINGAKU AS TBLMV_KINGAKU, ※NOT Null="YES"→"NO"にしたい TBLA_DATE AS TBLMV_DATE ※NOT Null="YES"→"NO"にしたい FROM TBLA LEFT JOIN TBLC ON TBLA_KAICD = TBLC_KAICD WHERE ・・・・・ UNION ALL SELECT TBLB_TENCD , TBLB_KAICD , TBLB_KINGAKU, TBLB_DATE FROM TBLB LEFT JOIN TBLC ON TBLB_KAICD = TBLC_KAICD WHERE ・・・・・ ; ALTER TABLE TBLMV ADD CONSTRAINT TBLMV_P01 PRIMARY KEY ( TBLMV_TENCD, TBLMV_KAICD ) USING INDEX STORAGE ( INITIAL 1M NEXT 1M MINEXTENTS 1 MAXEXTENTS 10) ;
質問日時: 2011/01/26 10:50 質問者: tkuzume
ベストアンサー
3
0
-
SQL CASE文に制御について
例えば、下記のようなデータがあるとします。 |店舗CD| |在庫数| 01001 1 10001 2 このデータをCASE文で店舗CDがLIKE '0*'のときにはas店舗在庫数へ それ以外の場合にはas倉庫在庫数へ振分けを行いたいですが... 具体的には下記のようなイメージになります。 |店舗CD| |店舗在庫数| |倉庫在庫数| 01001 1 0 10001 0 2 下記が自分で記述した内容です。 SELECT CASE WHEN MAIN.店舗コード LIKE '0*' THEN MAIN.在庫数 ELSE 0 END as 店舗在庫数, CASE WHEN MAIN.店舗コード NOT LIKE '0*' THEN MAIN.在庫数 ELSE 0 END 倉庫在庫数 FROM TBL_A これで実行するとすべての在庫が倉庫在庫数へ振り分けられます。 どうすればイメージどおり抽出できるでしょうか? 識者の方がいれば是非ご教示いただきたいです。 よろしくお願いいたします。
質問日時: 2011/01/25 21:28 質問者: anman0201
ベストアンサー
1
0
-
ORA-12154:TNS
Visual Studio2010で、 C#、Windowsアプリケーションで、 Oracleに接続したいと考えています。 ------------------------------- private void button1_Click(object sender, EventArgs e) { string constr = "User Id=scott;Password=tiger;data source=orcl"; OracleConnection con = new OracleConnection(constr); con.Open(); MessageBox.Show("接続に成功しました"); } ------------------------------- ■環境 ・OS・・Windows7(64bit) ・Visual Studio2010 Express Edition ・Oracle11g(お試し版) ・グローバル・データベース名:orcl ・データベース・パスワード:manager ------------------------------------- 現状、デバッグ実行すると、 con.Open(); で、「OracleExceptionはハンドルされませんでした。 ORA-12154:TNS:指定された接続識別子を解決できませんでした。」 と表示されてしまいます。 (sqlplusで、 ID・・scott PASS・・tiger で接続は出来ています。) 【サービス】 ・OracleJobSchedulerXE・・・開始(自動) ・OracleMTSRecoveryService・・・開始(自動) ・OracleServiceXE・・・開始(自動) ・OracleXEClrAgent・・・開始(自動) ・OracleXETNSListener・・・開始(自動) *********************************************** 色々と試したのですが、 解決に至りません。 ご存知の方、宜しくお願い致します。
質問日時: 2011/01/24 05:05 質問者: fthk-2010
ベストアンサー
2
0
-
oracle10gへの接続について
oracle10gをインストールしましたが、 接続できません。現状は、以下のとおりです。 【インストール済み】 ・Oracle Database 10g Express Edition 【サービス】 ・OracleJobSchedulerXE・・・開始(自動) ・OracleMTSRecoveryService・・・開始(自動) ・OracleServiceXE・・・開始(自動) ・OracleXEClrAgent・・・開始(自動) ・OracleXETNSListener・・・開始(自動) ------------------------------------------- 「データベースのホームページに移動」にアクセスしたいです。 http://localhost:8080/apex (127.0.0.1にしてもダメでした。) どうすればよいでしょうか? 以上、宜しくお願い致します。
質問日時: 2011/01/23 20:38 質問者: fthk-2010
ベストアンサー
1
0
-
副問い合わせについて
お世話になっております。 Oracle初心者です。 下記(1)~(3)までの内容を経て(4)のSELECT文が出来る様に FROM句や副問い合わせを考えていたのですが、 私にはまだ出来ませんでした。 どなたかご親切な方、ご教示頂きたく宜しくお願い致します。 記 (1)select ID,入庫数 from 入庫台帳 group by ID,入庫数 (2)select ID,出庫数 from 出庫台帳 group by ID,出庫数 (3)現在庫数=入庫数-出庫数 (入庫台帳のID=出庫台帳のID) (4)SELECT ID,品番,品名,現在庫数
質問日時: 2011/01/20 21:43 質問者: miruchoko
ベストアンサー
1
0
-
RECORDLENGTHを65535にする理由
Oracle10gなどででRECORDLENGTH=65535 としてEXPする人は多い oracleのドキュメントによれば、RECORDLENGTHはブロックサイズの倍数であるほうが よいとされている しかし65535はブロックサイズの倍数ではない なぜ65535にするのか?
質問日時: 2011/01/20 00:40 質問者: endpointtaro
解決済
2
0
-
Oracle DBリンクについて
ローカルホストから、他のマスタDBにDBリンクを作成しました。 しかし、DBリンクは作成できなのにいざ参照しに行くと下記のエラーが出ます。 select * from Tablename@Linkname ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました。 どうしてでしょうか、他のサイトにはこれで参照できるといっていたのですが... また、違う質問になりますがこれで参照しにいけるなら なんでSnapshotやマテリアライズドビューなどが存在しているのでしょうか? 初歩的な質問ですみませんがどなたか教えてください。
質問日時: 2011/01/19 21:50 質問者: anman0201
ベストアンサー
2
0
-
Oracle DataPumpでの移行
Linux(RedHat)データベース(oracle10g)から同じバージョンの新規データベースにDataPumpを使用して移行する方法について教えてください。 移行元のデータベース上にてDatapumpを使用する場合、ディレクトリを作成する必要がありますが、 (1)このディレクトリは移行元のデータベース上に作成するものでしょうか。 (2)それとも、新規データベース先にディレクトリを作成し、dmpファイルの吐き出し先を新規データベース指定するものでしょうか。(ファイルのパラメーターで、別データベースを指定できる??) (1)の場合、新規データベース上で別途ディレクトリを作成し、移行元のディレクトリに吐き出したdmpファイルをコピーやftp等で、新規データベースに移動させるのでしょうか? (2)の場合、exportのパラメータでどのように別データベースを指定すればよいでしょうか? dumpfile=directory_object:【新規DB IPアドレス??】test.dmp
質問日時: 2011/01/19 00:44 質問者: kanjidaisuki
解決済
2
0
-
SQL*Loader 最終行が数値の場合
SQL*LoaderでCSVデータをロードする時に以下のようなデータの場合 "2010年","A/W","01","TOP","02","KNIT","007","長袖","00","無地","01:TOP","無地",,1,689,0,0,0,0,"P","WALK IN",689 Number型(10,2)の列に最後の数値(689)が入りません。 おそらく、終端記号がないのでデータを認識できないと思うのですが、 どうにかしてロードする方法はありますか?
質問日時: 2011/01/18 12:50 質問者: anman0201
ベストアンサー
1
0
-
ORA-00984のエラーが出ます
C#でSQL(オラクル)に接続しています。 このinsert文を実行すると「ORA-00984: ここでは列は使用できません。」がでます。 実行した文はこれです↓ "insert into kanri2 values('aaa'," + dateTimePicker1.Text + "," + checkedListBox1.CheckedItems +","+ checkedListBox6.CheckedItems +")"; よろしくお願いします
質問日時: 2011/01/18 10:18 質問者: qbk_1111
解決済
1
0
-
ORACLE INSERT文を教えて下さい
いつもお世話になっております。 以下のような処理を実現したいのですが、どうしてもいい方法が見つかりません。 実現するINSERT文を教えて頂けないでしょうか? よろしくお願いいたします ー処理ー TBL_Aを1レコードづつ読み込み、グループ情報のあるVIEWよりview_GRPCD取得し、TBL_Bへ出力する。 但し、グループ情報には、以下のように同一TENCDに対して複数のグループがヒットする為、日付の降順、 グループコードの降順で一番最初にヒットしたレコードのGRPCDを採用する。 【TBL_A】 │TENCD │SYOCD │URIAGE│ ┼───┼───┼───┼ │10100 │ 0100 │1,000 │ │10200 │ 0100 │2,000 │ │10300 │ 0300 │3,000 │ │22200 │ 0200 │2,200 │ 【View】 │NO│GRPCD │TENCD │ YMD │ ┼─┼───┼───┼───┼ │01│ 010 │10100 │02/01 │ │02│ 010 │10200 │02/01 │ │03│ 010 │10300 │02/01 │ │04│ 020 │10200 │01/01 │ │05│ 030 │10100 │05/01 │→TENCD:10100はこれを採用 │06│ 030 │10300 │03/01 │→TENCD:10300はこれを採用 │07│ 040 │10100 │03/01 │ │08│ 040 │10200 │03/01 │→TENCD:10200はこれを採用 │09│ 040 │10300 │03/01 │ │10│ 050 │10400 │05/01 │ 下記のほうに記載しているSQLで作成されるTBL_Bは以下のようになります 【TBL_B】(誤り) │TENCD │GRPCD │SYOCD │URIAGE│ ┼───┼───┼───┼───┼ │10100 │ 030 │ 0100 │1,000 │ │10200 │ 040 │ 0100 │2,000 │ │10300 │ 030 │ 0300 │3,000 │ 本来TBL_Bは以下のようにView上に存在しないTBL_Aのレコードでも出力させたく 以下のような結果を求めたいと思っています。 【TBL_B】(正解) │TENCD │GRPCD │SYOCD │URIAGE│ ┼───┼───┼───┼───┼ │10100 │ 030 │ 0100 │1,000 │ │10200 │ 010 │ 0100 │2,000 │ │10300 │ 010 │ 0300 │3,000 │ │22200 │ 000 │ 0200 │2,200 │※※※このレコードを作成することが出来ません※※※ ※SQLにある「NVL(View_GRPCD,0)」でVIEW上にないレコードの場合、GRPCDにゼロをセットして 出力できるかと思ったのですが、VIEW上にないレコードは作成されませんでした。 これを実現する方法を教えて頂きたいと思います。 ■TBL_B(誤り)は作成できるSQL CURSOR CUR_A IS SELECT TENCD,SYOCD,SUM(URIAGE) FROM TBL_A GROUP BY TENCD,SYOCD ORDER BY TENCD,SYOCD; BEGIN OPEN CUR_A; LOOP FETCH CUR_1 INTO w_TENCD, w_SYOCD, w_URI; EXIT WHEN CUR_A%NOTFOUND; INSERT INTO TBL_B( SELECT w_TENCD, NVL(View_GRPCD,0), w_SYOCD, w_URI FROM (SELECT View_TENCD,View_WRICD,View_GRPCD, RANK() OVER(PARTITION BY View_TENCD ORDER BY View_YMD DESC, View_GRPCD DESC) w_RANK FROM View WHERE View_TENCD = w_TENCD) WHERE w_RANK = 1); END LOOP; CLOSE CUR_A;
質問日時: 2011/01/17 08:48 質問者: tkuzume
ベストアンサー
3
0
-
EXPコマンドでDIRECT=Yの弊害は?
Oracle10gを使用。 EXPコマンドを高速するためにDIRECT=Y RECORDLENGTH=65535 を指定していますが このオプションをつけることで何か弊害は発生しますか? 弊害がない場合は、なぜデフォルトで上記オプションが指定されていないのか教えてください。
質問日時: 2011/01/16 16:28 質問者: endpointtaro
解決済
2
0
-
ora-01017エラーについて
現在、C#とoracle10gを使ってデータベースに接続しようとしておりますが、ora-01017エラーがでます。 SQLコマンドラインで接続は出来るのですが、C#側からのログインができません。 C#ではこのように書いております。 public Meal() { InitializeComponent(); this.m_oDbconn = new OleDbConnection(); } private void Meal_Load(object sender, EventArgs e) { this.m_oDbconn.ConnectionString = "Provider=OraOLEDB.Oracle;" + "Data Sorce=xe;" + "User Id =aaa;" +"Password = aaa;"; this.m_oDbconn.Open(); } よろしくお願いします。
質問日時: 2011/01/15 12:55 質問者: qbk_1111
解決済
1
0
-
SQL*Loaderについて2
以前質問した内容と似ているのですが、 ロード元のCSV内に小数点2位までの数字が入った項目あるのですが これをNUMBER(10)のテーブルにロードするとエラーが出ます。 なので制御ファイル内のロード先列指定部分で 金額 "trunc(:金額,0)" で小数点を切り捨てようとしたところ数値が無効エラーがでます。 うまいこと小数点を省いてロードするためにはどうしたらいいですか?
質問日時: 2011/01/14 15:50 質問者: anman0201
ベストアンサー
1
0
-
SQL*Loaderについて
",2010/11/27 16:25," このような形式の日付データをsqlldrでテーブルにインポートする際に 制御ファイル内の項目設定部分で 売上日付 "to_char(:売上日付,'YYYY/MM/DD')", とすると数値のエラーが出ます。 テーブル側の当該項目のデータ型はVARCHAR2です。 ちなみに 売上日付 "substr(:売上日付,1,10)", にすると問題なくロードできました。 が、2010/12/3のような形で丸められるため都合が悪いです。 YYYY/MM/DDでロードするにはどうしたらいいでしょうか?
質問日時: 2011/01/13 20:27 質問者: anman0201
ベストアンサー
1
0
-
UPDATE文の書き方を教えて下さい。
いつもお世話になっています。 UPDATEの書き方について教えて下さい。 以下のようなUPDATE文を作成しました。 処理的には必要な結果を返してくれていますが、もう少しシンプルには ならないでしょうか? UPDATE文がまだ理解出来ていないのですが、”WHERE EXISTS(”以降に 書いているSELECT文は、SET文の値算出時にも同じSELECT文を書いて いるのですが、それを代用することは出来ないのでしょうか? (SELECTの結果をWHERE文の中で簡単に呼び出して使えないのでしょうか?) ※うまく内容が伝わってないかもしれませんが、どうぞよろしくお願いします。 <<<更新処理>>> UPDATE TBL01 SET( TBL01_MARNO, TBL01_UPDYMD )=( SELECT TBL02_MARNO, TO_NUMBER(TO_CHAR(SYSDATE,'YYYYMMDD')) FROM (SELECT TBL02_TENCD, TBL02_REN, TBL02_MARNO, TBL02_UPDKBN, RANK () OVER (PARTITION BY TBL02_TENCD, TBL02_REN ORDER BY TBL02_YMD DESC, TBL02_DAT DESC ) WRK_RANK FROM TBL02 WHERE TBL02_OKFLG = 1 ) WHERE TBL02_TENCD = TBL01_TENCD AND TBL02_REN = TBL01_REN AND WRK_RANK = 1 AND TBL02_UPDKBN = 2 ) WHERE EXISTS( SELECT 'TRUE' FROM (SELECT TBL02_TENCD, TBL02_REN, TBL02_MARNO, TBL02_UPDKBN, RANK () OVER (PARTITION BY TBL02_TENCD, TBL02_REN ORDER BY TBL02_YMD DESC, TBL02_DAT DESC ) WRK_RANK FROM TBL02 WHERE TBL02_OKFLG = 1 ) WHERE TBL02_TENCD = TBL01_TENCD AND TBL02_REN = TBL01_REN AND TBL02_UPDKBN = 2 AND WRK_RANK = 1 );
質問日時: 2011/01/13 14:24 質問者: tkuzume
ベストアンサー
1
0
-
oracleについて
現在、oracleの学習を始めようと思い、 「oracle database 11g release1(11.1.0) for windows(30日間トライアル版)」を インストールしました。 これで、準備OKなのかとおもいましたが、 ひとつ疑問がありまして、 「oracle client」というものがあるようですが、 私がインストールしたものと何が違うのでしょうか? 「oracle client」とはどういった時に必要ですか? 同じくお試し版のようなものはありますでしょうか? 又、CSEを入れるといいよと聞いた事がありまして、 ダウンロードしようと思いましたが、 windows7に対応していないようでした。 window7で利用できるもので、CSEに似たような ものはありますでしょうか? 以上、宜しくお願いします。
質問日時: 2011/01/13 04:49 質問者: fthk-2010
ベストアンサー
1
0
-
oracle sql developerについて
oracle sql developerを現場でインストールしました。 現場ではネットは全くつながっておりません。 postgreSQL2005は使用したことがあるのですが、 oracle sql developerは今まで全く使用したことが無く「インストールしてテスト台帳につなげてDB内容確認して」とか言われても正直困っております。 既存で作成されている「テスト台帳」にどうやって接続をすればいいのでしょうか? 設定方法やコネクトの手順がわかる方いましたらアドバイスをいただけないでしょうか? 現段階ではoracle sql developerをインストールしただけです。
質問日時: 2011/01/11 01:39 質問者: tuka52
解決済
1
0
-
DBからタブ区切りのCSVデータを抽出する
DBからCSVにしてデータを取り出そうと、ネットで検索して みようみまねでやってみました。(下記の場合カンマ区切りですが) タブ区切りで整列したデータを抽出したいのですが、特に、 (4)のように隣合う項目の間がかなり離れていて見えにくい状態で CSVファイルが作成されてしまいます。 (1)のように整列した形で、タブ区切りのCSVデータを抽出するには、 どのようにしたら宜しいのでしょうか? (2)、(3)は、試してみた実行ファイルです。 環境は、oracle10g windowsXPです。 (1)目的の結果の表示------------------------------- 653-5689 ZM05 田中太郎 YOKOHAMAS 4 4 9 097005・・・・・ 以下試してみたbatファイルとsqlで抽出 (2)batファイル---------------------------------- sqlplus ABCD/ABCD@oracle.host1.ser @abc.sql (3)sqlファイル----------------------------------- set echo off set heading off set termout off set pause off set pagesize 0 set trimspool on set feedback off set colsep "," set term off spool hoge.txt select * from T_JUTYU; spool off exit (4)結果--------------------------------- 653-5689 ,ZM05 田中太郎 ,YOKOHAMASI 4, 4, , ,9 ,097005 , 1 ,18 , , , , , 0 ,asahi asahi ,08-12-23,08-12-23, ------------------------------------------------まで結果
質問日時: 2011/01/09 23:39 質問者: jjmmyy
ベストアンサー
2
0
-
Oracle10g Expressのダウンロード
について教えて下さい。 ・サインインして、 ・同意し、 ・Oracle Database 10g Release 2 (10.2.0.1) Express Edition for Microsoft Windows ・Oracle Database 10g Express Client 「OracleXEClient.exe」をクリックし保存。 ダウンロードした、ファイルをクリックしたのですが、 (アイコンは、真っ白いファイル) 「ファイルを開くプログラムの選択」ダイアログが出てしまいます。 どうすれば良いのか、教えて頂きたいです。 宜しくお願いします。
質問日時: 2011/01/09 12:45 質問者: fthk-2010
ベストアンサー
4
1
-
oracleアカウント作成
自宅のPCに、oracleから諸々、ダウンロードしたいと考えています。 まず、 「今すぐオラクルのアカウントを作成 」をクリックし、 「MyProfileユーザーの作成 」を行ったのですが、 登録できませんでした。 行った内容は以下の通りです。 アカウントを作成時、 「ユーザー名」・・・・・・・gmailのメールアドレスを入力 「パスワード」・・・・・・・・上記、gmailのパスワード 氏名や、住所など必須項目は、 任意の値を入力して、作成ボタンをクリック。 「 「Password」フィールドの検証エラーを解決してください。 」 が表示されました。 どうすれば良いのか、お教えいただきたいです。 宜しくお願い致します。
質問日時: 2011/01/09 10:58 質問者: fthk-2010
ベストアンサー
1
0
-
UPDATE文を教えて頂けないでしょうか
いつもお世話になっています。 以下の処理を実現するUPDATE文を教えて頂きたく、質問にあげさせて頂きました。 ※現在、処理を「実績登録用UPDATE」と「予定登録用UPDATE」のそれぞれ作成すれば いけそうなのですが、1つのUPDATE文では実現出来ないでしょうか? ・・・実績登録用は作成したので、最後に付けています 以上、よろしくお願いします。 【処理】 トランより店マスタの更新を行う。 ・トランの区分が”1"の場合は、店マスタの実績欄へトランの日付情報をセットする。 ※店マスタの実績日は過去3日分を累積している為、 実績2を実績3へ、実績1を実績2へ 移してから、トランの日付を実績1欄にセットする ※区分”1”のレコードは、店コード毎に1件しか存在しない ・トランの区分が”2"の場合は、店マスタの予定欄へトランの日付情報をセットする。 ※店マスタの予定日は、当処理が実行される時点では既にクリアされており、毎回トランに存在する 直近3日分を予定欄へセットする ※区分”2”のレコードは、店コード毎に複数件存在する) 例) トラン(キー:店CD・日付) 店CD 日 付 区分 ┼───┼───┼──┼ │ 0001 │01/10 │ 1 │→マスタの実績1に登録されます │ 0001 │01/15 │ 2 │ │ 0002 │01/20 │ 2 │→マスタの予定1に登録されます │ 0002 │01/30 │ 2 │→マスタの予定2に登録されます │ 0003 │01/10 │ 1 │→マスタの実績1に登録されます │ 0005 │01/10 │ 1 │→マスタの実績1に登録されます │ 0005 │01/20 │ 2 │→マスタの予定1に登録されます │ 0005 │01/30 │ 2 │→マスタの予定2に登録されます │ 0005 │02/10 │ 2 │→マスタの予定3に登録されます │ 0005 │02/20 │ 2 │→マスタにはMAX3件までしか登録出来ないのでスキップ │ 0005 │03/01 │ 2 │→マスタにはMAX3件までしか登録出来ないのでスキップ マスタ(キー:店CD) 店CD│実績1 実績2 実績3│予定1 予定2 予定3│ ┼───┼───┼───┼───┼───┼───┼───┼ │ 0001 │01/05 │12/30 │12/25 │ │ │ │ │ 0002 │12/30 │12/15 │11/30 │ │ │ │ │ 0003 │01/01 │12/20 │12/10 │ │ │ │ │ 0004 │01/07 │01/06 │01/05 │ │ │ │ │ 0005 │01/01 │12/20 │12/10 │ │ │ │ 【希望する結果】 店CD│実績1 実績2 実績3│予定1 予定2 予定3│ ┼───┼───┼───┼───┼───┼───┼───┼ │ 0001 │01/10 │01/05 │12/30 │01/15 │ │ │ │ 0002 │12/30 │12/15 │11/30 │01/20 │01/30 │ │ │ 0003 │01/10 │01/01 │12/20 │01/07 │ │ │ │ 0004 │01/07 │01/06 │01/05 │ │ │ │ │ 0005 │01/10 │01/01 │12/20 │01/20 │01/30 │02/10 │ ■実績更新用UPDATE UPDATE マスタ SET ( 実績1,実績2,実績3 )=( SELECT 日付,MAX(TRN.実績1),MAX(TRN.実績2),MAX(TRN.実績3) FROM マスタ LEFT JOIN トラン TRN ON 店CD = 店CD WHERE 区分 = 1 GROUP BY トラン.店CD, トラン日付) WHERE EXISTS( SELECT 'TRUE' FROM マスタ WHERE マスタ.店CD = トラン.店CD AND マスタ.日付 = トラン.日付 AND トラン.店CD = 1 );
質問日時: 2011/01/07 08:36 質問者: tkuzume
ベストアンサー
2
0
-
ビューについて、教えてください
いつもお世話になっております。 ビューについて、教えて下さい。 以下のビュー「ABVW」を作成しましたが、TBLAやTBLBの内容が変更された場合、 ビュー上のデータは自動で置き換わるのでしょうか? CREATE VIEW ABVW SELECT * FROM TBLA UNION ALL SELECT * FROM TBLB 以上、よろしくお願いします。 ※いろいろなサイトではマテビューはリフレッシュ機能のようなものがあると書かれており、 マテビューを作成しようとしたのですが、TBLA/TBLBは”キーなし”が原因なのかは わからないのですが、うまく作成できず、普通のビューで行うことにしました。
質問日時: 2011/01/05 17:32 質問者: tkuzume
ベストアンサー
1
0
-
PHPでOCIドライバが有効にならない
首記の件、大変困っており、ワラをもつかむ気持ちで質問させていただきました。 Windows2008R2、IIS7(32ビットアプリケーション有効)、FastCGI 上記の環境にPHP(5.3.3)をインストールして使用しております。 PHP.iniを変更し、MySQLやODBCを使用できるようにいたしました。 phpinfoにも表示されておりますし、実際にDBとの接続もできております。 そしてこの度、OCIを利用するため、php.iniから、oci関連のコメントアウトを外しました。 [PHP_OCI8] extension=php_oci8.dll [PHP_OCI8_11G] extension=php_oci8_11g.dll [PHP_PDO_OCI] extension=php_pdo_oci.dll しかし、再起動後もphpinfoには表示されておりません。 OCI関連のパラメータはまだいじっておりませんが、まずは上記コメントアウトした内容が phpinfoに反映されてからと思っております。 この現象について、解決方法をご存知の方がいらっしゃいましたら、ご教示いただきたく。 どうぞよろしくお願いいたします。
質問日時: 2011/01/05 11:29 質問者: takesan12
解決済
1
0
-
インサート文での条件の指定について
お世話になります。 SQL初心者です。 ストアドを作成しているのですが、その中の下記の様なインサート分で、 条件を、インサートされる側の売上台帳テーブルにT受信データの受注Noが ない行のみをインサートさせたいと思っているのですが、どうやって記述 して良いかわからず悩んでいます。 どなたかご親切な方、ご教授下さいます様、宜しくお願い致します。 記 insert into 売上台帳 (支店コード,受注No,伝票No,品番,品名,数量,オーダー宛先,売上日, 住所,電話番号,更新日時,更新者) select支店コード,受注No,伝票No,品番,品名,数量,オーダー宛先,売上日, 住所,電話番号,更新日時,更新者 from T受信データ where 支店コード = 002 ;
質問日時: 2011/01/03 12:01 質問者: miruchoko
ベストアンサー
4
0
-
動作環境OSについて
64bitOSのwindows7 home editionのパソコンを購入してoracleの express editionで勉強をしようと考えているのですが動作環境について質問 があります。 oracle 10g express editionのサーバー/クライアントの動作環境について自分なり に調べた結果下記のページが検索されました。 http://download.oracle.com/docs/cd/B25329_01/doc/install.102/b25143/toc.htm#BABHICJH このページを見ると 32-bitのOSしか対応していないのでしょうか。 oracleは64-bitも対応したとどこかのホームページで見た覚えがあるのですが不確かです ホームページに Windows XP Professional Service Pack 1 or laterと書いてあるので windows7 home editionでも動作するでしょうか professionalじゃないと動作しないでしょうか もしwindows7 home edtionが対応していない場合でもhome edtionの環境でも問題なく動作しますよ という経験がある方はおしえてください。 また、昔ですがoracle9iの体験版をサポートしていないOS xp home edtionで動作したとい事が以前ありましたので 質問をまとめます(クライントPCとサーバPCに) 1.64bit-osは対応していますか 2.windows7 home edtionは対応していますか 3.もし1、2が製品サポート対象外であった場合でも1,2の環境で動作したよという体験段、経験が あれば教えて下さい。サポートしてないけど動作するからパソコン買ったらというアドバイス等
質問日時: 2010/12/28 21:50 質問者: 39OK
ベストアンサー
1
0
-
SQL文 複数条件の場合の書き方
初めて質問します。 下記のようなデータが存在します。 テーブルA NO DATE GYO 1 2010/12/01 1 1 2010/12/01 2 2 2010/12/01 1 2 2010/12/01 2 2 2010/12/01 3 3 2010/12/02 1 <= 4 2010/12/03 1 4 2010/12/03 2 上記データにて、<=の行の値を取得し変数へ代入したとします。 変数.NO =3 変数.日付 =2010/12/02 変数.GYO =1 上記、変数を元に1件前のレコードを抽出したいのですが SQL文でのいい方法がわかりません。 取得したいレコード 1 2010/12/01 1 1 2010/12/01 2 2 2010/12/01 1 2 2010/12/01 2 2 2010/12/01 3 どうかお願いいたします。
質問日時: 2010/12/27 16:32 質問者: tm_kyokushin
ベストアンサー
3
0
-
Oracleストアドプロシージャについて
現在、夜間バッチで海外FTPサーバーからCSVファイルをDWHサーバーに格納後、 同DWHサーバー内のOracleテーブルにInsertするという処理の開発をしているのですが、 CSVの取得はDOSバッチとTeratermのマクロで取得しようと思っています。 しかし、CSVファイルのInsert処理はPL/SQLで開発を行おうと考えています。 それは、Insert後にそのテーブルと別サーバーのOracleテーブルを使用してデータの加工を行い、 その結果をDWHテーブルにロードしなければいけないからです。 ちなみに、今まではVBしか触ったことしかなくPL/SQLやバッチの作成はは初めてです。 そこで質問なのですが、PL/SQLで他のサーバーのテーブルとリレーションは出来るのでしょうか? (VBAでは1つのサーバーにしか同時接続できなかったため) またその場合のフローチャートのイメージが出来ないのですが、箇条書き程度で結構ですので教えていただけないでしょうか?(どこでストアドプロシージャに処理が移行するのかなど....) 長い文章でわかりにくいと思いますが、識者の方がいれば教えていただければ幸いです。
質問日時: 2010/12/24 14:11 質問者: anman0201
ベストアンサー
3
0
-
トリガからプロシージャのコールについて
データベースはOracle10gです。 あるテーブルAにレコードが登録されたタイミングで、 別のテーブルBにレコードを登録するトリガを作成しようとしています。 トリガ内に全ての処理を記述するとかなりの行数になりそうなので、 登録のプロシージャを作成し、トリガからコールしようと考えています。 Aに登録されたレコードのカラムの一部を、Bに登録するレコードでも使用したいのですが、 プロシージャに引数として渡す際、 使用したいカラムを一つずつ指定しなければならないのでしょうか? (使用したいカラムは10ほどあります。) トリガに 「REFERENCING NEW ROW R1」と記述して、 このR1を渡すことはできないのでしょうか?
質問日時: 2010/12/21 21:13 質問者: superss28
解決済
2
0
【データベース】に関するカテゴリ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
【Oracle】に関するコラム/記事
-
SNSでの誹謗中傷はなぜなくならない?自分で自分を守るための利用方法とは!
今や世の中は「SNS全盛時代」といっても過言ではない。さまざまな情報を得られる半面、誹謗中傷などの不適切な投稿が人の心を傷つけるケースも少なくない。諸刃の剣ともいえるSNSだが、「教えて!goo」 には「ネット...
-
賃貸を退去する際の通常損耗の回復費用は誰が負担?契約時に注意すべき点は?
「退去時における消耗箇所の回復費用を誰が負担するか」というのは、賃貸物件のよくあるトラブルであるが、そもそも通常消耗・経年劣化・特別消耗の意味がそれぞれ異なることはあまり知られていない。 ・通常消耗・...
-
メダロット:第242話「Vol.242※期間限定公開」
天才メダロッター六葉カガミの戦いを描く「メダロット再~リローデッド~」(漫画:伯林、監修:イマジニア)、20周年を迎えた『メダロット』が新たなストリーでココに再起動!!★全話無料で読める、週刊メダロット通信...
-
タスク管理を使いこなして仕事がデキる人へ!タスク管理術を使えば生活にも応用可能!
やるべきことを整理し実行する「タスク管理」。仕事や勉強を効率的に進めるために有効な手法である。「仕事ができる人」は「タスク管理ができる人」というイメージを持つ人も少なくないだろう。「教えて!goo」には、...
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
oracleのimpdpでORA-39166
-
batファイルでのSQL(oracle)実行...
-
パソコンの画面が滑るのはなぜ? カ...
-
64bit端末でのOLEDB接続に関して
-
sqlで質問です。 aテーブルとbテー...
-
副問合せにLIKE文を使う方法はない...
-
質問です。 下記のテーブルとデータ...
-
ビットで表せる数値について
-
子供向けプログラミングのスクラッ...
-
PL/SQLでフェッチでNULLの項目について
-
写真のsql文空白をハイフン表示した...
-
IT 就職よくできますか?? 資格証は...
-
SQLの上達方法について
-
videopad 無料版 アンインストール
-
下記のsqlで取得されるレコード以外...
-
SQLで日付+時間で絞り込みたい
-
Oracle でのSQL文について
-
私は時々、アイホンを充電する時 パ...
-
データベースパフォーマンスチュー...
-
SQL 2つのテーブルとSUBSTRINGの条...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
副問合せにLIKE文を使う方法はない...
-
batファイルでのSQL(oracle)実行...
-
oracleのimpdpでORA-39166
-
データベースのカラムの型がCHAR型...
-
64bit端末でのOLEDB接続に関して
-
ORA-14452について
-
osqleditについて
-
Oracleで文字列型の時間を引き算し...
-
バッチファイルで複数フォルダ毎の...
-
orace SQL文のエラー(ORA-00923: F...
-
ワークテーブルって何?
-
SQLで今日の日付でWhereしたい
-
SQLについて教えて下さい。 主キー...
-
oracleの直接接続のクライアント接...
-
SQL 2つのテーブルとSUBSTRINGの条...
-
質問です。 下記のテーブルとデータ...
-
続.ORACLEのSELECTのソートについ...
-
SQLの中上級者へのレベルアップ方法...
-
テーブルやカラムの物理名のネーミ...
-
下記のsqlで取得されるレコード以外...
おすすめ情報