回答数
気になる
-
ファイルへの書き込みができない
ファイルへの書き込みができない 実行時エラーは表示されないのですが、ファイルへ出力されません。 コードは以下のようにしています。 よろしくお願いします。 declare FILE_HANDLE utl_file.file_type; STR varchar2(1023); begin -- 書き込みモードでファイルオープン FILE_HANDLE := UTL_FILE.FOPEN('c:\tmp','test.txt','W'); STR := 'test'; -- ファイルへ出力 UTL_FILE.PUT(FILE_HANDLE,STR); -- ファイルのクローズ -- UTL_FILE.FCLOSE(FILE_HANDLE); exception when others then dbms_output.put_line('その他エラー'); end; /
質問日時: 2010/10/13 15:52 質問者: shaka001
ベストアンサー
6
0
-
SQL 関数ループでデータ取得
SQL 関数ループでデータ取得 オラクルSQLで、FUNCTIONを作成し、その結果データを取得するSQLを作っています。(下記参照) begin buffer := null; for i IN 1..5 LOOP buffer := 【関数A(i)】; END LOOP; return buffer; イメージとしては、シーケンス番号(i)によって異なるデータを1つずつ取得したいのですが、 上記のようにすると、1回のループ毎にbufferが書き換えられ、結局最後のデータしか取得できません。 END LOOP前にreturnをはさんでしまうとその時点で関数が終了してしまうので逆に、最初のデータ しか取得できませんし。 上記のような関数を使う理由は、上記のiを固定(下記で言うi IN 1..5)でなく、 データの個数を可変で取得する仕様を考えているからです。具体的にはMAX関数でシーケンス番号の最大値を用意し、そのデータの個数取得できるようなものを考えています。 固定ならば、下記のようにその個数分関数を記述すればいいですので 【関数A(1)】; 【関数A(2)】; : 【関数A(5)】; 記述を1行で個数分のデータを取得できる方法はないでしょうか? SQLに詳しい方、ぜひご教授ください。
質問日時: 2010/10/13 14:38 質問者: salt708
解決済
2
0
-
oracle 10g 最大SGAサイズを変えたらDBが起動しなくなった
oracle 10g 最大SGAサイズを変えたらDBが起動しなくなった デフォルトの最大SGAサイズが1.5GBだったので3.0GBにしたところ DBが起動しなくなりました。元に戻すにはどうしたらいいでしょうか?
質問日時: 2010/10/08 16:10 質問者: fasdfasdf
解決済
3
0
-
デッドロック(ORA-00060)とメモリの関係
デッドロック(ORA-00060)とメモリの関係 以前、 OS:WindowsServer2003 R2 x64 SP2 DB:Oracle 10.2.0.2.0 の環境でデッドロックが発生したのですが、その際にメモリ使用量も全体の85%以上 使用していた状態でした。(メモリサイズは約6.3GB) (※デッドロックは、索引の処理を行うにあたり前処理が不足していたことが原因) そのため、デッドロックと空きメモリの関係を確認したいのですが、 ・空きメモリ不足によりデッドロックが発生する可能性があると考えられるでしょうか。 もしくは、 ・デッドロックが発生したことにより、空きメモリが消費されてしまうと考えられる でしょうか。 ご存知の方がおりましたらお教えいただけないでしょうか。 よろしくお願いいたします。
質問日時: 2010/10/08 15:40 質問者: 50006204
ベストアンサー
1
0
-
oracle10g 使用するリスナーを追加する
oracle10g 使用するリスナーを追加する リスナーが2個あってインスタンスを作成するときに片方選択しました。(※1) 後からもう片方でも使えるようにしたいのですが可能でしょうか? ※ tnsnames.oraとlistener.oraを見直しましたがだめでした。 ※1 database configuration assitanの3/5の工程
質問日時: 2010/10/08 15:18 質問者: fasdfasdf
解決済
2
0
-
データ型について教えてください。
データ型について教えてください。 あまり気にする必要がないかもしれませんが、テーブルにフラグ目的でフィールドを作る場合、 データ型は何するのが一般的なのでしょうか?(CHAR OR NUMBER?) ACCESSで言えばBOOLEANになると思うのですが、ORACLEやポスグレはないですよね? 私は、CHAR(1)にしています。 理由は、プログラムでSQLを書くときに''で囲むようにするためです。 その他のフィールドもだいたいテキストか日付ですので、''を囲むフィールドばかりです。 できるだけ''囲むフィールドに統一して、SQLの記述ミスを少なくしようというのが狙いです。 この考え方は間違っていますか?
質問日時: 2010/10/06 09:12 質問者: mori1115
解決済
2
0
-
selectの内容によって、登録するカラムを変えたい
selectの内容によって、登録するカラムを変えたい selectであるテーブルからある値Aをとってきます。 値Aが1の時は別テーブルの金額1に登録、2の時は金額2に登録、3の時は金額3に登録 という処理を行いたいです。 同一レコードに対して複数の金額がある事があります。 テーブル1(取得テーブル) ------------------ キー 値A 金額 1 1 500 1 3 300 2 3 200 ------------------ テーブル2(登録テーブル) ------------------ キー 金額1 金額2 金額3 1 500 0 300 2 0 0 200 ------------------ いま、 insert into テーブル2 SELECT 項目 from テーブル1 というように1つのSQLで、登録、削除をしようとしていますが 可能でしょうか?。方法がよく分かりません。
質問日時: 2010/10/05 18:25 質問者: evaag777
ベストアンサー
3
0
-
oracle8iサーバに対して、windows7、oracle10gク
oracle8iサーバに対して、windows7、oracle10gクライアントで接続は可能でしょうか?
質問日時: 2010/10/04 16:43 質問者: imaoka0770
解決済
1
0
-
oracle 9i と SQL SERVER 2005 DBリンクにつ
oracle 9i と SQL SERVER 2005 DBリンクについて とても困ってます。 よろしくお願いします。 仕事で、oracle 9iとSQL SERVER 2005をDBリンクさせて、oracle 9iのTableとSQL SERVER 2005のTableを結合させて、SELECT文を作成したいです。 本番環境は、DBサ―bとWebサーバは別々でとりあえずlocal開発環境を作成しています。 <確認したこと> ・global_names = Flase ・ODBCの設定はSQL SERVER 2005に接続確認しました。 →データソース名は、「SQLSRV」です。 ・inithsodbc.oraの設定 HS_FDS_CONNECT_INFO = SQLSRV HS_FDS_TRACE_LEVEL = OFF ・LISTENER.ORAの設定(編集後再起動しました) → (SID_DESC = (SID_NAME = HSODBC) (ORACLE_HOME = D:\oracle\Ora9IUTF) (PROGRAM = hsodbc) ・TNSNAMES.ORAの設定 HSODBC = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST =localhost)(PORT = 1521)) ) (CONNECT_DATA = (SID = HSODBC) ) (HS = OK) ) ・DBリンク作成(小文字を認識するため、ダブルクォーテーションで囲います) CREATE DATABASE LINK DB_LINK_SQLSRV CONNECT TO "ユーザ" IDENTIFIED BY "パスワード" USING 'HSODBC'; ・SELECT文 SELECT * FROM テーブル名@DB_LINK_SQLSRV; 上記の手順ですが、サービス名が解決できません。
質問日時: 2010/10/04 09:30 質問者: shouto1616
解決済
1
0
-
他の処理でselectさせないようにしたい。
他の処理でselectさせないようにしたい。 ある処理AがテーブルXを利用し動作していたとします。 この時、別の処理Bが,テーブルXを検索しただけでエラーにしたいです。 FOR UPDATEは、更新はできないですが、検索は出来そうなのですが、 検索しただけでエラーにする方法はあるでしょうか? よろしくお願いします。
質問日時: 2010/09/29 17:57 質問者: evaag777
ベストアンサー
2
0
-
SQLでSUMなどの関数でデータが無い時に0を返したい。
SQLでSUMなどの関数でデータが無い時に0を返したい。 (例) SELECT SUM(項目) FROM テーブル WHERE 条件 ここで、条件に一致するデータが1件も無かった時ですが、 何かNULLのような物が1件返ってきているようです。 この条件に一致する物が無かった時に、 0を返したいのですが、可能でしょうか? よろしくお願いします。
質問日時: 2010/09/27 23:07 質問者: evaag777
ベストアンサー
2
0
-
DBサーバの構築でマスタをOracle、スレーブをMySQLにて構築す
DBサーバの構築でマスタをOracle、スレーブをMySQLにて構築することはできるのでしょうか。
質問日時: 2010/09/27 15:54 質問者: basi999
ベストアンサー
2
0
-
データベースの使い方についてご意見ください。
データベースの使い方についてご意見ください。 社内のイントラなどをメインにASP(VBScript)-OracleでWEBアプリを開発しています。 近年、これまで紙で行われていたものがシステム化されるという動きが活発化し、開発案件が非常に増えてきています。そのため、自分なりに開発効率を高めるためいろいろな試みを行っています。 例えば、JQUERYを用いることによりかなり開発効率が上がりました。 その他の試みとして、長ったらしいSQLを書く時間を省くために、前もってOracleに全テーブルを連結したVIEWを作っておいて、SQLはWHERE句だけを書き換えてそのVIEWを見にいくようにしました。 このやり方は一般的なものなのでしょうか? デメリットはなんでしょうか? 私的にはコードもかなりすっきりしてかなり気にいっています。
質問日時: 2010/09/26 16:42 質問者: mori1115
ベストアンサー
1
0
-
処理速度の見積もり時間について。
処理速度の見積もり時間について。 Oracle 10gを使用し開発を行っています。 処理速度について伺いたいことがあり、投稿致しました。 現在、PL/SQLを使用しCSVファイルよりデータを読み込み、 テーブルをチェックし、条件に合致するようならデータのUPDATEを 行うという処理をしています。 このCSVファイルのデータは何百万件と大量のデータで、 処理速度を懸念しております。 そこで処理速度についてですが、どのようにすれば見積もることが できるのでしょうか? 具体的な方法をご教授頂けるとありがたいです。 そもそもCSVファイルを一行ずつ読み込んで、テーブルに対し UPDATEを掛けるというやり方自体間違っているのでしょうか? 一時テーブル等を使用した方が良いのではないかとも思うのですが・・・。 以上、宜しくお願い致します。
質問日時: 2010/09/25 19:46 質問者: minute-pink
解決済
2
0
-
現在、VBAにてUNICODEのCSVを出力し、SQL*Loaderで
現在、VBAにてUNICODEのCSVを出力し、SQL*Loaderでテーブルへ取り込む処理を作成しています。 そこで、文字コードについて質問があります。 作成したCSVで、IBMフォーマットの全角マイナスとWindowsの全角マイナスが あります。これをSql*Loaderにてテーブルへ取り込むと、Windowsの全角マイナスが IBMの全角マイナスへ変換されてしまいます。 これはSql*Loaderの仕様でしょうか? IBMの文字コードは、E28892(&H2212)、Windowsの文字コードは、EFBC8D(&HFF0D)です。 Sql*LoaderのCONTROLファイルでCHARACTERSETをUTF16にしています。 宜しくお願いします。
質問日時: 2010/09/25 19:22 質問者: norisuke777
ベストアンサー
1
0
-
PL/SQLでREPRACE INTO構文と同様の処理を作成
PL/SQLでREPRACE INTO構文と同様の処理を作成 別のテーブルにレコードを投入する処理を実行するトリガを作成したのですが、 プライマリ・キーが重複するレコードの投入時に、一意制約でエラーになってしまいます。 トリガの作為としましては、プライマリキーが重複する際には上書きさせたいのですが、この場合、PLSQLではどのようなコマンドがあるのでしょうか? (mySQLのREPLACE INTO と同様の処理を行うコマンドを想定しています) ↓下記のINSERT INO の箇所をREPLACE INTOと同様の処理を行うコマンドにしたいと思っております CREATE OR REPLACE TRIGGER TRI_TEST after update of TRI_NAME ,TRI_CALLED on cp_MV_TABLE FOR EACH ROW begin if (:old.TRI_NAME != :new.TRI_NAME or :old.TRI_CALLED != :new.TRI_CALLED ) THEN INSERT INTO TR_RUS_TABLE ( TRI_NO , TRI_DATE , TRI_NAME , TRI_CALLED ) values ( :new.TRI_NO , :new.TRI_DATE , :new.TRI_NAME , :new.TRI_CALLED ); end if; end; /
質問日時: 2010/09/24 09:35 質問者: amatsuno
ベストアンサー
2
0
-
SQLで集計について分からないことがあります。
SQLで集計について分からないことがあります。 まず、次のようなテーブルがあったとして 日付 店舗コード ブランドコード 金額 ---------------------------------------- 09-01 | 401101 | 01 | 10000 09-02 | 401101 | 01 | 20000 09-03 | 401101 | 01 | 30000 09-04 | 401101 | 01 | 40000 09-01 | 401101 | 02 | 10000 09-02 | 401101 | 02 | 20000 09-03 | 401101 | 02 | 30000 09-04 | 401101 | 02 | 40000 09-01 | 401101 | | 11111 09-02 | 401101 | | 22222 09-03 | 401101 | | 33333 09-04 | 401101 | | 44444 ブランドコードが'Null'の金額をブランドコードが'01'の金額に 日付をキーにして集計したいんですが、 可能でしょうか? なにか、良い方法があればお願いします。
質問日時: 2010/09/22 23:51 質問者: anman0201
ベストアンサー
2
0
-
Oracle Enterprise Manager 管理画面にアクセス
Oracle Enterprise Manager 管理画面にアクセスできない Oracle 11gR2 ですが、https://localhost:1158/em/ にアクセスできません。インストールは無事終わり、インストール直後は上記サイトにアクセスでき、sys でログインできていました。 localhost のところはホスト名に変更してもアクセスできないです。 「正常に接続できませんでした。localhost:1158 のサーバへの接続を確立できませんでした」というエラーが Firefox 上に表示されます。 週末にサーバーを落として、今週に至るのですが、Web ページにアクセスできなくなっています。 listener を起動して、sqlplus にログインし、alter database open; コマンドまで成功しているので リスナーとデータベースの起動はできてると思うのですが、他に何が足りないのでしょうか? ご教授よろしくお願い致します。
質問日時: 2010/09/22 16:25 質問者: Crepe45
ベストアンサー
1
0
-
お世話になってます。
お世話になってます。 SQL初心者です。 現在、ORACLEでSQLを作成しているのですが、「ORA-00920」と「ORA-02063」が 発生し困っています。 「ORA-02063」の原因は調べてみると「ORA-00920」が原因の可能性があるみたいです。 「ORA-00920」のメッセージには「関係演算子が無効です。」とありますが、 調べてみてもよくわかりません。 実行するSQLは以下のような感じです。 ■SQL文 with テーブルA as( SELECT文 取得カラムA, 取得カラムB, 取得カラムC ), テーブルB as( 取得カラムA, 取得カラムB, 取得カラムC ) SELECT * FROM テーブルA A_TABLE, テーブルB B_TABLE WHERE A_TABLE.取得カラムA = B_TABLE.取得カラムA (+) AND A_TABLE.取得カラムB = B_TABLE.取得カラムB (+) AND A_TABLE.取得カラムC = B_TABLE.取得カラムC (+) ***ココマデ*** ビューの作成はうまくいっているのですが、 テーブルAとテーブルBを使用したSQL文でエラーになっているようです。
質問日時: 2010/09/21 16:33 質問者: ikechanman
解決済
1
0
-
はじめまして!
はじめまして! ORACLE初心者です。 今、with句で複数のテーブルビュー作成後、出力されたビューからSELECTで値を取得する といった内容のSQLを作っているのですが、「ORA-00928」が発生しうまくいきません。 「ORA-00928」はどういった場合に起こるエラーなのでしょうか? 苦戦しています、だれか教えてください。
質問日時: 2010/09/21 10:54 質問者: ikechanman
解決済
1
0
-
ORACLEへ、ODBC経由でCHAR属性のフィールドへNULL文字(
ORACLEへ、ODBC経由でCHAR属性のフィールドへNULL文字(x'0')を INSERTできたのですが、そのフィールドをUPDATEできません。 ODBCのエラーとなります。原因は何でしょうか? 宜しくお願いします。
質問日時: 2010/09/18 01:25 質問者: hakuba777
ベストアンサー
1
0
-
10.2.0.3のインストール時エラーについて
10.2.0.3のインストール時エラーについて x86(32bit)仕様のWindows2008サーバ(DElL社レイド5)に オラクル10.2.0.3をインストールしている時 「TNS プロトコルアダプタエラー」が発生します。 心当たりの方 アドバイスいただけませんでしょうか。 よろしくお願いいたします。
質問日時: 2010/09/14 21:36 質問者: athiro2
解決済
1
0
-
------------------------------
------------------------------ テーブル:TABLE1 ------------------------------ USER_ID TYPE COUNTRY ------------------------------ 001 A JAPAN 002 A UK 003 A USA 004 Z UK ------------------------------ ------------------------------ テーブル:TABLE2 ------------------------------ COUNTRY STATUS ------------------------------ JAPAN 001 CHINA 001 UK 002 USA 002 ------------------------------ --------------------------------- テーブル:TABLE3 --------------------------------- USER_ID TYPE COUNTRY STATUS --------------------------------- 001 A JAPAN 001 002 A UK 002 003 A USA 002 004 Z UK 999 ← ※1)002から999に変更したい --------------------------------- TABLE1とTABLE2を結合してTABLE3を作成したいと思います。 =========================================================== SELECT a.USER_ID, a.TYPE, a COUNTRY, b STATUS FROM TABLE1 a LEFT JOIN TABLE2 b ON a.COUNTRY=b.COUNTRY =========================================================== そこで、上記のSQL文を作成しましたが、そこに追加で条件を加えたいと考えています。 ※1)のSTATUSの値は、本来は"002"になりますが、TYPEが"Z"の場合は、STATUSの値を強制的に"999"に変更したいです。 SQL文で「TYPEが"Z"の場合は、STATUSの値を強制的に"999"に変更したい」という条件を追加したいのですが、どのような式を書けばよろしいでしょうか? よろしくお願いいたします。
質問日時: 2010/09/13 18:58 質問者: MixNuts
ベストアンサー
1
0
-
バックアップの容量と時間の見積り
バックアップの容量と時間の見積り サーバのバックアップの容量と、バックアップ時間にかかる見積りを行なおうとしております。 Oracleで、総容量2.6TBのフルバックアップを週次で取りたいのですが、 どの程度の時間がかかるのかを机上でのみしか計算できないため、 (netvaultを使用して、800GB×8のテープへする予定なのですが、まだ準備されていません) 悩んでいます。 机上計算ができるようなサイトか、どの程度の時間がかかるかお解かりになられる方はおりますでしょうか。 ※必要情報がありましたら、随時載せてゆきます
質問日時: 2010/09/13 11:14 質問者: amatsuno
ベストアンサー
3
0
-
PL/SQLのカーソルについて
PL/SQLのカーソルについて お世話になります。 Oracle11gで開発しています。 初心者です。 下記ストアドプロシージャの「zokuseisyutoku」で取得した 値(入数、重量、才数、ロケーション)を受けて、別のストアドプロシージャ 「Hyouji」の変数(irisuu、jyuryou、saisuu、lokesyon)に代入して得られた 内容をGridviewに表示させたいと思っています。 現在は、別々のストアドプロシージャなのですが、 一つに出来るものなら一つのストアドプロシージャにまとめたいの ですが、どなたかご親切な方、ご教授頂きたく宜しくお願い致します。 記 (1)ストアドプロシージャ1つ目 create or replace procedure zokuseisyutoku ( sItemClassinコード表.品番%type, out_valoutpls_integer, out_cursoroutsys_refcursor ) as begin if sItemClass is null then open out_cursor for select入数, 重量, 才数, ロケーション fromコード表 ; else open out_cursor for select入数, 重量, 才数, ロケーション fromコード表 where品番 = sItemClass ; end if; out_val := 1; (2)ストアドプロシージャ2つ目 create or replace procedure Hyouji ( irisuu in部材表.入数%type, jyuryou in部材表.重量%type, saisuu in部材表.才数%type, lokesyon in部材表.ロケーション%type, out_valoutpls_integer, out_cursoroutsys_refcursor ) as begin open out_cursor for select b.資材名,b.色,b.種類,b.サイズ,b.棚番号 FROM 部材表 a,資材項目 b WHERE a.ID = b.資材ID AND a.入数 = irisuu AND a.重量 = jyuryou AND a.才数 = saisuu AND ロケーション = lokesyon ; out_val := 1; end; end;
質問日時: 2010/09/12 23:04 質問者: miruchoko
ベストアンサー
1
0
-
バッチ処理を使用して、Oracle10gのデータのバックアップを取ろう
バッチ処理を使用して、Oracle10gのデータのバックアップを取ろうとしています。 10gでバックアップする上で先ほどの質問で、アーカイブログモードか ノンアーカイブログモードかの情報を提示していただきました。 http://okwave.jp/qa/q6173983.html もしも、アーカイブログモードを選択した場合は、「バッチ処理によるバックアップ」は 必要ないのではないでしょうか? 調べた限りでは、「アーカイブログモード」でバックアップを取る場合は、常にREDログ ファイルにバックアップを取り続けるという趣旨の説明が出てきました。 つまり、バッチ処理によるバックアップが必要になるのは「ノンアーカイブモード」の時 だけなのでしょうか? 以上、よろしくお願いします。
質問日時: 2010/09/11 19:04 質問者: jacknifesoulde
ベストアンサー
2
0
-
ベストアンサー
2
0
-
Oracle SQLIの難易度について
Oracle SQLIの難易度について お世話になっております。この質問は、 http://oshiete.goo.ne.jp/qa/6168299.html からの派生でございます。 Oracle Bronz取得の為に、 1Z0-051-JPN 11g SQLI と 1Z0-017-JPN Bronze SQL I どちらがよいか(10月からの値上がり前に取得するのに)相談させてください。 「9月末までまだ20日あるんだから毎日3時間勉強すれば取れない訳がない」 と、思われるかもしれませんが1度落として 「学習の空振り感」を感じて居るの相談致します。 学習方法としては、まず黒本と呼ばれる参考書を読み進めながら学習をしました。 (↓使用書) テーブル作ったり、参考書に書かれているSQLを実行したり。 http://www.amazon.co.jp/Bronze-Oracle-Database-SQL%E5%9F%BA%E7%A4%8EI%E7%B7%A8-%E8%A9%A6%E9%A8%93%E7%95%AA%E5%8F%B7/dp/4798116610/ref=pd_sim_b_2 その後、参考書だけじゃ不十分というのは散々言われていたので別途問題集で学習。 (↓使用書) http://www.amazon.co.jp/%E5%BE%B9%E5%BA%95%E6%94%BB%E7%95%A5ORACLE-MASTER-Bronze-1Z0-051J-IT%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E5%BE%B9%E5%BA%95%E6%94%BB%E7%95%A5/dp/4844326392/ref=pd_cp_b_1 問題集を大体9割取れる用になったところで、 55番の試験(55問、2時間、6割の方)を受験しましたが 出題された問題の内容は、問題集のそれとは大きく違うものでした。 Oracleの受験が初であった事を差し引いても、 問題集の問題で問われているレベルの内容一つ一つをもっと掘り下げて 細かい違いまで正確に理解していなければ 確信を持って回答できない問題ばかりだったように思えます。 選んだ問題集がはずれだったのか? そう思い後日何冊かの問題集を立ち読みしてみましたが どれも似たり寄ったりな感触しか受けませんでした。 例として、受験直後の日の時点で http://park14.wakwak.com/~ky1999/ORA/ こちらのサイトのBronze SQL 基礎Iの問題(1-50)をといてみた所 8割以上をとる事が出来ました。 特別、私の記憶力や理解力が乏しいというわけではない(ハズ…)です。 15000円スッた悔しさから半ば負け惜しみでもありますが、私は 1Z0-051 と 1Z0-017 で、 難易度や出題傾向が大きく違うのでないか? 自分が今までやってきた学習は1Z0-017向けで、 1Z0-017を受ければすんなり合格できるのではないか? などと考えています。 それともその認識は間違いで、 1Z0-017も 9iや10gの頃より大きく傾向も難易度も変わり、 問題集を100%理解して当日の試験ではスレスレを辛うじてとる… というのが精一杯の時期になっているのでしょうか? 最近の(2009年以降の)1Z0-017 を受験してBronzを取得された方など、 もしおられましたら、 http://park14.wakwak.com/~ky1999/ORA/ こちらの問題を見ていただいた上でアドバイスを頂きたく思います。 長文になりましたが、よろしくお願いします。
質問日時: 2010/09/10 10:54 質問者: wendy0303
ベストアンサー
1
0
-
PL/SQLについて
PL/SQLについて お世話になります。 現在Oracle 11gと.Net C#で開発をしている物です。 正直どちらも初心者で悪戦苦闘している日々ですが、 PL/SQLのカーソルについて知りたい事があります。 PL/SQLでカーソルを作成しました。 そしてその同一ストアドプロシージャ文の中で、 先のカーソルの結果で得られた値から別の新たなカーソル でまた新たな結果を返すと言う様な、二重カーソルの様な 事は可能でしょうか。 どなたかご親切な方、ご教授頂きたく宜しくお願い致します。 出来れば、サンプルや、HP等ご紹介頂ければありがたく 思います。
質問日時: 2010/09/10 07:39 質問者: miruchoko
ベストアンサー
2
0
-
バッチファイルを使用したsql@plusの実行及びログ出力について
バッチファイルを使用したsql@plusの実行及びログ出力について Windows Server 2003上で動作しているOracle10gのDBに対して Windows XP上に配置したバッチファイルをタスクで起動させ、 sql@plusを使用してデータを削除する処理を行いたいと考えています。 ---data_delete.bat--- @echo %date% %time% データ削除開始 >> log.txt sqlplus -S USER/PASS@TNSNAME @data_delete.sql >> log.txt @echo %date% %time% データ削除終了 >> log.txt ---data_delete.sql--- DELETE FROM TABLE WHERE FLG = 1; EXIT; data_delete.batを実行するとlog.txtが出力されます。 ---log.txt--- yyyy/mm/dd hh:nn:ss.xx データ削除開始 XXX行が削除されました。 yyyy/mm/dd hh:nn:ss.xx データ削除終了 この時、log.txtの内容を下記のように変更したいのですが、 その方法が分りません。 ---log.txt--- yyyy/mm/dd hh:nn:ss.xx データ削除開始 yyyy/mm/dd hh:nn:ss.xx データ削除終了 XXX行が削除されました。 できれば[削除件数 XXX 件]と表示させたかったのですが、 自分の調べた限りではできそうにないので、 フィードバックされる文字列をそのまま使う方向で進めています。 上記ログの出力方法ができるようでしたら、 その方法を教えて頂けると嬉しいです。 宜しくお願いします。
質問日時: 2010/09/09 17:42 質問者: tanishimi
ベストアンサー
1
0
-
特定のカラムが更新されたときのみ、そのレコードを別テーブルへ格納するト
特定のカラムが更新されたときのみ、そのレコードを別テーブルへ格納するトリガの作成方法を教えてください・ トリガ名:TEST_UPDATE テーブル名:MV_ORACLE_MV_TEST カラム名:ORAPRIME ORACHANGE ORANAME CHANGENAME 対象カラム:CHANGENAME 格納先テーブル:TRITEST_ORACLE_MV_TEST 作成トリガ: CREATE OR REPLACE TRIGGER TEST_UPDATE after update of CHANGENAME on MV_ORACLE_MV_TEST FOR EACH ROW begin INSERT INTO TRITEST_ORACLE_MV_TEST SELECT MV_ORACLE_MV_TEST.ORAPRIME , MV_ORACLE_MV_TEST.ORACHANGe , MV_ORACLE_MV_TEST.ORANAME , MV_ORACLE_MV_TEST.CHANGENAME FROM MV_ORACLE_MV_TEST where MV_ORACLE_MV_TEST.CHANGENAME = :new.CHANGENAME -- commit; commit; end / テーブルMV_ORACLE_MV_TESTのうち、CHANGENAMEカラムが変更(更新)されたレコードのみを、 TRITEST_ORACLE_MV_TESTテーブルに格納したいと思っております。 この時、他のカラムも一緒に格納することが必要でして、 (もしカラムに変更があった場合、そのカラムも変更する。変更されていない場合は元の値を格納する) そのトリガを上記のように書いたのですが、 コンパイルエラーが発生しました。 どの部分が誤っているのか、ご教授願えませんでしょうか
質問日時: 2010/09/09 12:11 質問者: amatsuno
ベストアンサー
7
0
-
Oracle Bronz 11g 取得に必要な試験は?
Oracle Bronz 11g 取得に必要な試験は? Oracleの資格を取得しようと、学習中です。 OracleのBronz取得にはSQL基礎Iと、 DBA11g(どうせ取るなら最新の11gがよいと思ってます)の 2種の試験に合格する必要があると言うのは判るのですが 前者の「SQL基礎I」に該当する試験は 1Z0-051-JPN 11g SQLI なのか、 1Z0-017-JPN Bronze SQL I なのか判りません。 黒本の序章などを読みますと 1Z0-017-JPN BronzSQL基礎I 1Z0-018-JPN Bronze DBA11g が並んで書かれているので、 いかにもこの2つを受験すればよいように思えるのですが、 それでは 1Z0-051-JPN 11g SQLI は何の試験なのでしょうか? 試験費用も高いので間違えたくありません。 どうかご教授くださいませ。 よろしくお願いします。
質問日時: 2010/09/08 20:54 質問者: wendy0303
ベストアンサー
2
0
-
oracle ダンプファイルのサイズとインポート先の表領域の使用サイズ
oracle ダンプファイルのサイズとインポート先の表領域の使用サイズの関係 あるダンプファイル(2.5GB)をオラクルDBへimportしたら、 そのDBの表領域が10GBほど使用されました。 2.5GBのものをimportしたのに、なぜここまで表領域を消費するのでしょうか? (これまでこのようなことはありませんでした。) 表領域の使用サイズをもっと少なくするにはどうすればよいのでしょうか? エクスポート時のコマンド exp aaaa/aaaa file=bbbb.dmp log=exp_cccc.log consistent=y インポート時のコマンド imp aaaa/aaaa file=bbbb.dmp log=imp_cccc.log エクスポート時に「compress=n」をつけたり、 インポート時に「ignore=y」をつけたりしたのですが、 とくに変化はありませんでした。
質問日時: 2010/09/07 21:23 質問者: ilaser
ベストアンサー
2
0
-
RDBのテーブル種類の違い
RDBのテーブル種類の違い ~トランと~ワークの違いってなんでしょうか? 同じようなテーブル構成なのにテーブルの名前が違う気がするんですが。 調べたのですが腑に落ちる内容ではなかったので わかる方がいれば教えていただけるとありがたいです。
質問日時: 2010/09/07 12:14 質問者: anman0201
ベストアンサー
2
0
-
DBに新しいTBLを作成した際の初期エクステントサイズ(いわゆるIni
DBに新しいTBLを作成した際の初期エクステントサイズ(いわゆるInitial)のデフォルト値に関して、ObjectBrowserなるツールから確認はできるのですが、SQL文から確認できるのでしょうか。 確認できるとしたらどんなSQL文でしょうか。
質問日時: 2010/09/07 09:43 質問者: masteryoda_0125
解決済
1
0
-
ORACLEのDBへODBC経由でデータアクセスしています。
ORACLEのDBへODBC経由でデータアクセスしています。 実行環境はWindows XP,開発言語はCOBOLです。 コンパイルは問題ないのですが、実行しますと、 動的SQLの使い方が間違っていますというようなメッセージが 出力されて異常終了します。(ちなみにカーソルオープンのところで終了) 下記のような動的SQLのコーディングですが、どこが問題なのでしょうか? 宜しくお願いします。 01 SQL-CSR0-DB21. 03 FILLER PIC X(35) VALUE 'SELECT M.*,ROWIDTOCHAR(M.ROWID) '. 03 FILLER PIC X(35) VALUE ' FROM DB21 M '. 03 FILLER PIC X(35) VALUE ' WHERE M.BCODE = ? '. 78 SQL-CSR0-LEN VALUE 105. (中略) INITIALIZE DYNSTMT. MOVE SQL-CSR0-DB21 TO DYNSTMT-ARR. MOVE SQL-CSR0-LEN TO DYNSTMT-LEN. EXEC SQL PREPARE STMT1 FROM :DYNSTMT END-EXEC. EXEC SQL DECLARE CSR0_TN_DB21 CURSOR FOR STMT1 END-EXEC. EXEC SQL OPEN CSR0_TN_DB21 USING :BCODE_HST END-EXEC.
質問日時: 2010/09/06 22:31 質問者: hakuba777
ベストアンサー
2
0
-
Oracle Database の最適な学習方法、技術が身につく方法と
Oracle Database の最適な学習方法、技術が身につく方法とは? 現在は、Oracle Database 11g 試験の勉強中です。 Bronze⇒Silverと目指してます。Goldは費用の関係で受けないかもしれません。 資格目的は、会社の評価UPと報奨金目的ですが。 勉強中ですが、試験勉強=役立つ知識、作業で使えるか。 というと、けっしてそうではないと思います。 状況としては、今は11gが無料でインストールできて、問題集にとりくんでます。 ゆくゆくは、現場で使える知識・技術を身につけたいのですが、 どんな方法があるのでしょうか? 現場で覚えるのが最適ですが、現在の世の中では求人も難しい。 そんななかで、Oracleデータベースの技術を身につけるという意味で、 何か最適な方法はありますか? まはた、私の勘違いで、 問題集を完璧といえるまで理解しすることが、技術習得への道につながるのでしょうか? 独自に考えて、EMやSQLPLUSをひたすら操作するしかないですか? また、このような内容に参考になる書籍やサイトがあればご紹介ください。 よろしくお願いします。
質問日時: 2010/09/06 10:39 質問者: noname#122912
ベストアンサー
2
0
-
oracle 10g サーバ機のIPアドレス変更について
oracle 10g サーバ機のIPアドレス変更について oracle 10g サーバ機(DBの入っているPC)のIPアドレスを変更した所 サービスの起動時にエラーが発生し 正常に動作しなくなりました。 バージョン8などで「コンピュータ名」を変えるとNGとなる認識はありましたが 何かご存知な方 教えてください。 よろしくお願いいたします
質問日時: 2010/09/05 10:49 質問者: athiro2
ベストアンサー
1
0
-
oracle 10g ユーザやスキーマごとに文字コード指定
oracle 10g ユーザやスキーマごとに文字コード指定 oracle10g使っています sjis sjistilde euctilde eucjptilde など いろいろ文字コードがあります 文字コードごとに それぞれインスタンスを別に しているのですが 1個のインスタンスに統一したいです ユーザやスキーマやテーブルなどで個別に文字コードを指定することは できないのでしょうか
質問日時: 2010/09/04 20:07 質問者: jqa56thaegh
解決済
1
0
-
oracle の各列のデータに対して、
oracle の各列のデータに対して、 SJISのスペース(X'20')以下の文字(X'00'~X'19')が、 データ中に含まれていないかどうかを範囲指定(X'00'~X'19')で 検索したいのですが、どのようにSQLを作成すれば良いでしょうか? <例> データ:X'303132003031320130313219' 例では、X'00',X'01,X'19'が存在するので、これらを検索したい。 宜しくお願いします。
質問日時: 2010/09/04 11:22 質問者: hakuba777
解決済
1
0
-
oracle10g eucのblobをsjisのcharに変換したい
oracle10g eucのblobをsjisのcharに変換したい oracle10gでblob型でeuc_jpの文字列を格納しています これをshift_jisのvarchar2に変換したいのですが 無理でしょうか? utl_raw.cast_to_nvarchar2では文字化けしました
質問日時: 2010/09/03 22:38 質問者: jqa56thaegh
解決済
1
0
-
oracle10g expdbコマンドの文字化けについて
oracle10g expdbコマンドの文字化けについて 以下のとおり、どうにもならないのでしょうか? http://otn.oracle.co.jp/forum/message.jspa?messageID=35042625
質問日時: 2010/09/03 16:53 質問者: jqa56thaegh
解決済
1
0
-
SQLでデータを1件だけ取得したいのですが。
SQLでデータを1件だけ取得したいのですが。 以下のようなテーブルが2つあるとします。 ------------------------------------ テーブルA テーブルB 値X 値X 値Y 1 1 20 2 2 NULL 3 2 60 4 2 70 4 NULL 4 NULL ------------------------------------ ここで、テーブルAの値Xと、テーブルBの値Xをリンクさせます。 テーブルAにデータがあれば、テーブルBに無くても出力します(外部結合イメージ) テーブルAの値Xに対して、テーブルBの値Xは2件以上リンクされる可能性があります。 この場合は1件のみ出力します。 その1件の決め方は、テーブルBの値YがNULLでは無く最大の物です。 但し値Yは全てNULLの可能性もあるので、その場合NULLとして1件出力します。 上記の出力イメージ ------------------------------------ 値X 値Y 1 20 (1件の場合そのまま出力。1件がNULLでもそのまま出力) 2 70 (NULLではない最大の1件を出力) 3 NULL (テーブルBになくても出力) 4 NULL (値が全てNULLの場合、NULLとして1件出力) ------------------------------------ どのようなSQLを記載すれば実現可能でしょうか?
質問日時: 2010/09/02 22:37 質問者: evaag777
ベストアンサー
2
0
-
オラクル10gで開発を行っています。文字コードはJA16SJISTIL
オラクル10gで開発を行っています。文字コードはJA16SJISTILDEです。 現在、テーブルの中には条件なしで様々な文字種類のデータが入っているとします。 全角ひらがな・カタカナ、半角数字・カタカナ、全半角英字・記号等です。 例えば”アイウエオ”を含む文字列を検索するselect文を実行したとき、 以下のようなものがヒットします。 ”アイウエオ” ”アイウエオ” ←半角カタカナ ”あいうえお” ←ヒットしてもしなくてもよい。 例えば”ガギグゲゴ”を含む文字列を検索するselect文を実行したとき、 以下のようなものがヒットします。 ”ガギグゲゴ” ”ガギグゲゴ” ←半角カタカナ ”がぎぐげご” ←ヒットしてもしなくてもよい。 例えば”&”を含む文字列を検索するselect文を実行したとき、 以下のようなものがヒットします。 ”&” ”&”←半角記号 要は、何が言いたいのかいいますと、全角文字の文字列で検索を行ったとき、 全角・半角の区別をしないで検索結果を得るSQL文を考えています。 どのようなSQLにすればよいのかアドバイスをお願いします。 もし、SQL文のみでは実現不可能であれば、●●●といった形で検索結果を 得てそのうち△△△に該当するデータを抽出するといった複数ステップを踏む 方式でも構いません。
質問日時: 2010/09/02 00:22 質問者: nekoronda
ベストアンサー
2
0
-
oracleの表の各列に対して、
oracleの表の各列に対して、 不正な文字がないかどうかをチェックする方法として、 select 各列名 from 表名 where文で実施したいのですが、 1文字づつチェックするsql文はどのようにしたら良いでしょうか? 例:abcXXXefg aからgまでをチェックし、XXX部分の不正文字を抽出する。 宜しくお願いします。
質問日時: 2010/09/01 23:36 質問者: hakuba777
解決済
1
0
-
SQLで<>を使用するとき、
SQLで<>を使用するとき、 Where ブランドコード <> '01'という感じで'01'以外のレコードを抽出するときに 複数の否定条件を指定するにはどうしたらいいのでしょうか? 初歩的な質問ですみません。 Where ブランドコード <> '01' And ブランドコード <> '05'を一文で書きたい時の方法です。 よろしくお願いします。
質問日時: 2010/09/01 11:31 質問者: anman0201
ベストアンサー
1
0
-
ORACLE DBへ初期化していない領域のレコードを
ORACLE DBへ初期化していない領域のレコードを INSERTで追加した場合、どのような値のデータ(文字コード)が 格納されるのでしょうか?
質問日時: 2010/08/31 19:04 質問者: hakuba777
ベストアンサー
3
0
-
pl/sqlでselect文の結果をCSV出力しようとしています。(o
pl/sqlでselect文の結果をCSV出力しようとしています。(oracle 8.16) そこで以下のようにクエリの結果を出力しようとしているのですが、 SQL文の長さが255バイト(文字?)以下ならば正常に動くのですが、 255を超えると正常な結果が返ってこない状況です。 (エラーは発生しないが、結果が1カラム分しか出力されない。) OPEN c FOR SQL文; LOOP FETCH c INTO vOutputLine; EXIT WHEN c%NOTFOUND; DBMS_OUTPUT.PUT_LINE(SUBSTR(vOutputLine,1,100)); DBMS_OUTPUT.PUT_LINE(SUBSTR(vOutputLine,101,100)); DBMS_OUTPUT.PUT_LINE(SUBSTR(vOutputLine,201,100)); DBMS_OUTPUT.PUT_LINE(SUBSTR(vOutputLine,301,100)); DBMS_OUTPUT.PUT_LINE(SUBSTR(vOutputLine,401,100)); DBMS_OUTPUT.PUT_LINE(SUBSTR(vOutputLine,501,100)); END LOOP; CLOSE c; oracle8だとPUT_LINE などで使用できる一行のバッファサイズが 255 バイトまでという記事があったのでそれが原因かなとおもってのですが、解決方法が分かりません http://www.shift-the-oracle.com/plsql/dbms_output/ 解決方法、もしくは他に原因が検討違いでしたら教えていただけます様お願いします。
質問日時: 2010/08/31 01:56 質問者: hunya0216
解決済
1
0
-
nullなどの不正なデータが存在しないかどうかを、
nullなどの不正なデータが存在しないかどうかを、 表の全レコード(行)に対して、チェックしたいのですが、 何か簡単で良い方法はありますか?
質問日時: 2010/08/29 08:48 質問者: hakuba777
ベストアンサー
2
0
-
Oracle SQLの、where句内の条件文について教えてください。
Oracle SQLの、where句内の条件文について教えてください。 下記SQLの(1)と(2)の記述文を教えてください。 (1)例:owner = sys,admin ownerがsysまたは、adminを抽出 (2)例:column_name = '*aaa*' column_nameに「aaa」が含まれているデータ SELECT owner, table_name,column_name FROM all_tab_columns WHERE (1)(Ownerを複数指定) and (2)(column_nameに、●●が含まれるデータ)
質問日時: 2010/08/27 18:26 質問者: neetter
解決済
2
0
【データベース】に関するカテゴリ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
【Oracle】に関するコラム/記事
-
メダロット:第246話「Vol.246※期間限定公開」
天才メダロッター六葉カガミの戦いを描く「メダロット再~リローデッド~」(漫画:伯林、監修:イマジニア)、20周年を迎えた『メダロット』が新たなストリーでココに再起動!!★全話無料で読める、週刊メダロット通信...
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
離婚をした場合、元パートナーとのその後の付き合い方は人それぞれだという。すべての思い出をリセットする人もいれば、元妻や元夫の物を捨てられずに取っておく人もいるようだ。理由は様々だろうが、現在のパートナ...
-
メダロット:第245話「Vol.245※期間限定公開」
天才メダロッター六葉カガミの戦いを描く「メダロット再~リローデッド~」(漫画:伯林、監修:イマジニア)、20周年を迎えた『メダロット』が新たなストリーでココに再起動!!★全話無料で読める、週刊メダロット通信...
-
メダロット:第244話「Vol.244※期間限定公開」
天才メダロッター六葉カガミの戦いを描く「メダロット再~リローデッド~」(漫画:伯林、監修:イマジニア)、20周年を迎えた『メダロット』が新たなストリーでココに再起動!!★全話無料で読める、週刊メダロット通信...
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイルで複数フォルダ毎の...
-
副問合せにLIKE文を使う方法はない...
-
IPアドレスを数値に変換
-
videopad 無料版 アンインストール
-
スナップショット取得について教え...
-
sqlで質問です。 Aテーブルは店番、...
-
SQLの中上級者へのレベルアップ方法...
-
SELECTによる表の変換方法を教えて...
-
開発対象となるアプリケーションの...
-
質問です。 下記のテーブルとデータ...
-
Oracleですがsqlで質問です。 サブ...
-
sqlで質問です。 Aテーブルの登録番...
-
sqlで質問です。 Aテーブルの情報を...
-
SQLの書き方について
-
SQLについて教えて下さい。 主キー...
-
sqlで質問です。 idを元にidに紐付...
-
oracleで 10,20, 30, というデータ...
-
索引作成について
-
googleプレイの履歴で取得とインス...
-
sql(oracle)で質問です。 テーブ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
副問合せにLIKE文を使う方法はない...
-
oracleのimpdpでORA-39166
-
batファイルでのSQL(oracle)実行...
-
ORA-14452について
-
バッチファイルで複数フォルダ毎の...
-
osqleditについて
-
64bit端末でのOLEDB接続に関して
-
データベースのカラムの型がCHAR型...
-
orace SQL文のエラー(ORA-00923: F...
-
質問です。 下記のテーブルとデータ...
-
ワークテーブルって何?
-
SQLの中上級者へのレベルアップ方法...
-
テーブルやカラムの物理名のネーミ...
-
SQL ブレーク処理について
-
SQL update方法
-
Oracleで文字列型の時間を引き算し...
-
SQL 2つのテーブルとSUBSTRINGの条...
-
複数レコードの完全一致
-
sqlで質問です。 aテーブルとbテー...
-
sqlで質問です。 Aテーブルの情報を...
おすすめ情報