ベストアンサー ※ ChatGPTを利用し、要約された質問です(原文:oracle シェル利用) oracle シェル利用とテーブル作成 2009/03/11 20:01 このQ&Aのポイント oracle9iを使い、複数のテーブル作成ファイルを一度のシェルで実行する方法について教えてください。シェルの文中でのSQLログイン方法やテーブル作成ファイルの実行方法について、初心者の方でもわかりやすく説明してください。また、oracle シェル利用における注意点やベストプラクティスについてもご教示いただけると幸いです。 oracle シェル利用 はじめまして 現在、oracle9iを使い、開発しています。 宜しければご回答の方をお願い致します。 テーブル作成文を記載したCREATE_AAA.sqlがあり 同様のCREATE_BBB.sql,CREATE_CCC.sql,・・・ と複数あり、これを一度のシェルで実行したいと考えています。 どのように行えば、良いのでしょうか。 不明点 ・シェルの文中にどのようにSQLログインすればよいのか? sqlplus aaa/bbb という記述でOK? ・その後に@AAAの記述でOK? 以上です。 当方、初心者ですが、何卒ご回答の程、よろしくお願い致します。 質問の原文を閉じる 質問の原文を表示する みんなの回答 (1) 専門家の回答 質問者が選んだベストアンサー ベストアンサー corgi12kg ベストアンサー率51% (28/54) 2009/03/12 02:01 回答No.1 とりあえずは以下のようなシェルでどうでしょうか? #!/bin/sh -x echo START SQLPLUS cd SQL文のパス sqlplus USER/PASS@接続名 << EOF set SERVEROUT on SET TERMOUT on @CREATE_aaa.sql @CREATE_bbb.sql @CREATE_bbb.sql ・ ・ ・ exit EOF echo E N D SQLPLUS exit 参考URL: http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19277-01/toc.html 質問者 お礼 2009/03/12 10:18 corgi12kg様 非常にわかりやすいご回答ありがとうございました。 助かりました。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピューターデータベースOracle 関連するQ&A シェルの引数を、実行するパラメータに指定するには? シェル初心者です。 シェルの実行パラメータを、その中で実行する処理のパラメータに再び指定したいのですが可能でしょうか。 ただし、パラメータの数は可変です。 環境はSolarisです。 aaa.sh aaa bbb ccc aaa.shの中 bbbコマンド aaa bbb ccc ということを行いたいです。 パラメータ数が固定であれば問題なさそうですが 可変の場合、どのような記述をすればよいでしょうか? シェルスクリプトについて シェルスクリプトについて Linuxで先頭にスペースが入っている行をひとつ上の行につなげたいと考えています。 その場合、シェルスクリプトはどのように書けばよいかご教示願います。 【ファイル内容】 aaa △bbb ccc ddd (b行の先頭のみスペース(△)が入っています。) 【変換後のファイル】 aaa bbb ccc ddd Cシェルでテキストファイルの行削除方法 現在、Cシェルの勉強をしていますが、ある文言に完全一致した行のみ削除する方法が分かりません。 例として、下記のようなファイルがあり、"AAA"を指定して削除しようとすると、"AAA_1"までも削除されてしまいます。 例)test.txt AAA aaa AAA_1 aaa BBB bbb CCC ccc お手数ですがご教授いただけると幸いです。 以上、宜しくお願い致します。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム オラクルで オラクルのSQLでの質問ですが、 2つのテーブルに同じ名前の列があります。 TEMP1 TEMP2 ---------- ------------- NAME CODE NAME NUM aaa 1 ccc 5 bbb 2 ddd 10 この2つのテーブルを検索して、同じ列として表示したいのですが 可能なのでしょうか? NAME ----------- aaa bbb ccc ddd このようにしたいのですが、ビューなどは使ってかまわないのですが 方法がありましたら教えてください。 シェルスクリプトでオラクルのエラーメッセージを取得するには シェルスクリプト上でsqlplusを起動し、さらにSQLの実行結果(エラーメッセージ)を取得するにはどのようにシェルをどのように記述すればよいでしょうか? ---------------------------------------- sqlplus scott/tiger@hoge SQL>select * from dep; * 1行でエラーが発生しました。 ORA-00942: 表またはビューが存在しません。 ---------------------------------------- 上記のようなコマンド実行とエラーメッセージの取得を行いたいのですが、シェルについては超初心者のためよく分かりません。 実行環境は以下の通りですが、ご存知の方教えて頂けないでしょうか。よろしくお願いします。 OS:Red Hat Linux 8.0 DB:Oracle8.1.7 sqlplusの操作をシェル上で RedhatLinuxのシェルスクリプト上で Oracleのsqlplus操作を行うことは可能でしょうか? その場合、どのように記述すればよいでしょう? やりたい内容の例としては以下になります。 #!/bin/sh su -<oracleユーザー> sqlplus ※※※※ SQL> update ※※※ set ※※※ SQL> exit 上のような内容をcronに登録して自動処理をかけたいと考えています。 bashなどのシェル変数の値に改行を含める事は可能でしょうか? タイトルの通りですが、通常のシェル変数の値として [prompt]$ aaa="bbb<改行>ccc" のようなセットを行い、 [prompt]$ echo $aaa bbb ccc [prompt]$ のような結果を得たいのですが、可能でしょうか。 oracle テーブルコピー はじめまして 現在、oracle9iを使い、開発しています。 宜しければご回答の方をお願い致します。 スキーマAAAにあるテーブルBBBをテーブルデータは不要として スキーマCCCに同じ定義のテーブルBBBをコピー作成したいと考えています。 どのように行えば、良いのでしょうか。 当方、初心者ですが、何卒ご回答の程、よろしくお願い致します。 [シェルの質問]改行と結合 bsh初心者です。 よろしくお願いします。 1)下記のような","で区切られている場合、","を見つけたら 改行して出力したいです。 [入力] aaa,bbb,ccc, ddd,eee,fff [出力] aaa, bbb, ccc, ddd, eee, fff 2)下記のように、ある文字"aaa"をみつけたら、その次の行と結合して 出力したいです。 [入力] aaa: Hello! [出力] aaa:Hello! とこんな感じです。 awkとか使わないとできないでしょうか? awkはあんまり詳しくないので、できたら 記述例をいただけると幸いです よろしくお願いします。 副問い合わせのinsert文 いつもお世話になっています。 insert文の副問い合わせのことでお聞きしたいのですが、 ■通常のinsert文 insert into AAA values(aaa,bbb,ccc); 上記のsqlを副問い合わせにした場合(aaaに別テーブルからの検索結果を入れたい場合)どういうSQL文になるでしょうか。 参考書等を参照すると、副問い合わせの場合はvaluesを省略する(使えない?)と記述がありました。 insert into AAA values ( aaa IN (SELECT bbb from BBB where ccc = ddd),bbb,ccc); とはできないみたいですので… どうかご教授宜しくお願いします。 シェルの中から他のシェルを呼び出す 例えば、ひとつのシェルファイル( aaa.sh )の中に、 ------------------------- #!/usr/bin/csh set HOME=/home/test/tmp bbb.sh ------------------------- と記述した場合、bbb.shで変数$HOMEを使いたいと思いましたが、 使えないようです。(HOME: 未定義の変数と表示されます) どなたか、これ以外の方法で、このように シェルからほかのシェルを呼び出して、変数も引き継がれるような方法ご存知ないでしょうか? 多分こーやれば、こうなるかも!みたいなご回答でも結構ですので情報提供をお願いします。 どうぞ宜しくお願い致します。 selectでテーブルから2つの値を引っ張る table 123 id name ------- 1 aaa 2 bbb 3 ccc table 987 from to ------- 1 2 2 3 3 1 という表があります。これを from to ------- aaa bbb bbb ccc ccc aaa という様に表示させるためのSQL分がわかりません。 1つの表から2つを引っ張るのはどうすればいいのでしょうか? AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム シェルスクリプトについて シェルスクリプトを勉強しています。 hoge.txt内で"AAA"という文字列を"BBB"という文字列を検索し下記のような処理を行いたいです。 (1)AAA・BBBともにある場合 →スクリプトを続行 (2)AAA・BBBともにない場合 →スクリプトを停止 (3)AAAしかない場合 →BBBがありませんというメッセージを流す (4)BBBしかない場合 →AAAなしでスクリプトを続行しますというメッセージを流す シンプルなやり方でいいので上記のようなことを行いたい場合、どのようにスクリプトを書けばいいのか教えてください。 よろしくお願いします。 【初心者です】SQLPLUSでのバッチ実行時の引数(パラメータ)指定について SQLPLUSは詳しくなく、躓いてしまいました。 ストアドプロシジャを「aaa.sql」として作成して、 C直下に配置しました。 それをSQLPLUSから実行したいのですが、 パラメータの指定がうまくいきません。 SQL> @C:\aaa('BBB','CCC'); 上記のようにしても「ファイルがオープンできません」 と表示されてしまいます。 「(~)」を取り外して実行すると、動くみたいですので パラメータの指定が間違っているみたいです。 よろしくお願いします。 oracleからSQL Serverへの移行 oracleからSQL Serverへ移行することになったのですが、副問い合わせで定義したテーブル同士を外部結合するSQL構文が、うまく実現できず、ご教授して頂きたくよろしくお願いします。 下記、oracle 構文をSQL Server構文へ書き換えたい。 select * from (select cal1,cal2,cal3 from tbl1,tbl2 where cal1 >100) aaa, (select cal1,cal2,cal3 from tbl1,tbl2 where cal1 <=100) bbb, tbl3 where aaa.cal1 = bbb.cal1(+) and aaa.cal2 = bbb.cal2(+) and aaa.cal3 = bbb.cal3(+) and aaa.cal1 = tbl3.cal1 よろしくお願いします。 行数ごとに検索をかけて並び替えをしたいのですが・・ 数千のファイル名が書かれたテキストファイルがあります。(Aとします。) /yyy/ccc.txt /aaa/aaa.txt /bbb/bbb.txt /sss/aaa.txt /ccc/bbb.txt /zzz/ccc.txt ・ ・ ・ ユニークファイル名だけ書かれたファイルがあります。(Bとします。) aaa.txt bbb.txt ccc.txt ・ ・ ・ Bの行数1行ずつAで検索をかけ、ファイル名を新しいファイル(Cとします)に書き出したいのです。 /aaa/aaa.txt /sss/aaa.txt /bbb/bbb.txt /ccc/bbb.txt /yyy/ccc.txt /zzz/ccc.txt ・ ・ ・ シェルを使ってやりたいのですが、どのようにすればいいのか見当もつきません。 どなたかお分かりのかたいましたら教えてください。よろしくおねがいします。 ある条件を持たないレコードの抽出 下記のようなデータがあります。 col1 col2 ========== 001 AAA 001 BBB 001 CCC 002 AAA 002 CCC 003 BBB 003 CCC 004 AAA col2 にBBB を持たないレコードを抽出したいのですが どのようにSQLを記述すればよいかご教授ください。 得たい結果 002 004 どうぞよろしくお願いいたします。 【シェル】while文の変数定義について OS:Solaris10 sh:Bシェル お世話になります。 シェルの冒頭で定義した変数をwhile文の中で読み込ませたいです。 現状のシェルは下記の通りです。 ---- #!/bin/sh # *** 変数定義 *** AAA1=Spring BBB1=Summer AAA2=Autumn BBB2=Winter # *** メイン処理 *** i=1 while [ $i -le 2 ]; do AAA=AAA$i BBB=BBB$i echo ${AAA} echo ${BBB} i=`expr $i + 1` done ---- しかし、出力される結果は下記のようになってしまいます。 AAA1 BBB1 AAA2 BBB2 これを冒頭の「*** 変数定義 ***」で定義した値を読み込ませ、下記のような出力結果を得たいです。 Spring Summer Autumn Winter どうかご教授ください。 oracle 条件分岐について oracle10gです。 テーブルAから取得した項目aaaが"1"のとき、 テーブルBから項目bbbを取得する それ以外の場合、 テーブルCから項目cccを取得する という内容のSQLを一度に実行したいのですが、 ifやcaseで実行可能でしょうか。 ご教授いただきたいです。 よろしくお願いいたします。 【ACCESS】重複チェック方法について 下記のように、複数フィールドがあり、 フィールド1,2,3が全て同じレコードを抽出したいのですが 抽出する方法があれば、教えてください。 フィールド1 フィールド2 フィールド3 ・・・・ ――――――+――――――――+――――――――+――――― 12345 AAA aaa 12345 BBB aaa 12378 AAA aaa 12378 AAA bbb 23456 CCC bbb 23456 CCC bbb ―>抽出したい!! 23456 CCC ccc 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター データベース SQL ServerOraclePostgreSQLMySQLNoSQLその他(データベース) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
corgi12kg様 非常にわかりやすいご回答ありがとうございました。 助かりました。