- 締切済み
シェル上でDBコマンドをループさせる方法
entreeの回答
- entree
- ベストアンサー率55% (405/735)
-- #!/bin/sh while :; echo "exec dbms_mview.refresh('mview_name','c') -- マテビュー(mview_name)を完全リフレッシュ" sleep 60 done | sqlplus Userid/Passwd@sid exit 0; -- これで60秒ごとにコマンドがSQL*Plusに送られリフレッシュが実行されるはずです。
関連するQ&A
- ループを途中で抜けたいのですが。
無限ループさせているwhileやfor文などで、 何かのキーを押すとループを抜けるように設定したいのですが可能でしょうか? (scanfやcinなどをループの中に組み込まずに。ctrl+Cも無しで。) (あと、フォーム上ではなくコンソール上で。) 多分説明不足なのでもうちょっと詳しく。 たとえば、 while ( i != 1 ){ j += 1; } の様な無限ループを設定したとして、 本来なら if (j > 100 ){ break; } とか、 while文の中に scanf ( "%d" , &i ); 等を入れて終了条件を満たさせるべきですが、 そうではなく、ひたすら無限ループを続けているところにEscキーを押すとループから脱出するようなプログラムを作ってみたいのです。 そういうプログラムは可能でしょうか? どうかご教授下さい。 使用コンパイラ:Visual C++ 2008 Express Edition
- ベストアンサー
- C・C++・C#
- ループ処理の中におけるDB接続について(java)
ループ処理の中におけるDB接続について、接続→切断を繰り返すと処理速度が落ちますよね。 これを回避するにはSQLでできる限り取得するのが良いと思われますが、その他にプログラムで 回避することはできますかね? whileの中でさらにSQLを使用する必要があります。 どなたかご教授願います。
- 締切済み
- Java
- 無限ループについて(while true~)
たびたびお世話になります。 管理しているサーバーとデータベースの接続確認を、30分に一度行っているのですが、この際に入力していたコマンドが無限ループから抜け出すことができなくなってしまいました。 入力していたコマンドは、while true; do ./aaa.sh ; sleep 1800; doneです。 30分に一度、aaa.shを起動させて接続を確認する、というつもりで入力していたものなのですが…。 無限ループに気付き、プロセスをrootからkill(-kill) しても復活(?)してしまうようです。 このままでは問題があるため、なんとか無限ループを抜け出したいのですが、いい方法はありませんでしょうか? OSはLinuxです。 申し訳ありませんが、初心者中の初心者のため、必要な情報があまりわかりません。不足がありましたら、補足要求お願いします。
- ベストアンサー
- Linux系OS
- whileで最後のループを判別するには?
環境:php5 Q. DBから取得した値をwhileでループさせたとき、最後のループを取得するにはどうしたらいいのでしょうか? 現状ではループさせる数を最初に取得して、whileさせているときに$i++でカウントさせながら、合計の数とイコールになったときに最後と判断させていますが、もっとスマートに記述する方法などはあるのでしょうか? smartyだとlastで取得できるみたいですけど。 ご教授いただけると幸いです。
- 締切済み
- PHP
- ループが回らない
#include<stdio.h> #include<string.h> #define HASH_SIZE 100 #define NAME_SIZE 20 char name[ HASH_SIZE ][ NAME_SIZE ]; i int hash_func( char str[] ) { } void main() { char s[ NAME_SIZE ],i; int index ; while(1){ printf("文字を入力!"); scanf("%s",s); if( s[0]='.') break; index = hash_func(s); strcpy( name[ index ],s) ; printf("*\n"); } } このプログラムの 無限ループのところがぜんぜん回らないんです。 自分なりに試行錯誤してみたのですが 限界に達しましたので助言をいただきたいです。 上の関数は今はなにも書いてないですが、 書いてあっても動かないです。 月曜日提出の課題なので なるべく早め回答いただけると幸いです。 アドバイスお待ちしております。
- 締切済み
- C・C++・C#
- BGPのnetworkコマンドについて
BGPのnetworkコマンドについてについて教えてください。 自身のループバックアドレスを直接接続されているルータにアドバタイズしたいと考えていますが、どのようなコマンドを入力すればいいのでしょうか。 ループバックアドレス:10.1.1.1/32 network 10.1.1.1 mask 255.255.255.255 上記コマンドでいいのでしょうか。お忙しい中お手数ですが、ご教授いただけましたら幸いです。
- ベストアンサー
- ネットワーク
- 【Bシェル】戻り値取得について
はじめまして。 Bシェルでの開発が初めてで、色々と調べてはみたのですが どうしても解決できなかったため投稿させて頂きました。 お忙しい中大変恐縮ですが、ご教授頂けると幸いでございます。 【やりたい事】 →例えば、"mysqladmin -uUSER_NAME -pPASSWORD create DB_NAME"と いうコマンドをBシェル内に書き、既にDBが登録されていた場合、 "mysqladmin: CREATE DATABASE failed; error: 'Can't create database 'DB_NAME'; database exists'" というエラーメッセージが出力されると思いますが、そのエラーメッセージ を変数に入れたい。 以上、ご確認をお願い致します。
- ベストアンサー
- その他(プログラミング・開発)
- shellからsqlplusでコマンドを順次実行
shellスクリプトから sqlplus @AAA.sqlを実行する。 以下:AAA.sql @home/~/aaa.sql @home/~/bbb.sql quit; 以下:aaa.sql exec dbms_refresh('XXX'); 以下:bbb.sql set serveroutput on set linesize 1000 set pagesize 0 set trimspool on set feedback off whenever oserror exit 9 whenever sqlerror exit 5 MERGE ~ 中略 commit; exit ---------------- 以上、がソース内容です。 aaa.sqlでexitしていないのにbbb.sqlへ処理が移行しません。 ログ見てみるとリフレッシュコマンド実行後に接続が切れてしまっているようです。 処理概要ですが、あるMVをリフレッシュ後にそのMVを使用してMERGE文を実行するという処理です。 上記説明で原因特定は可能でしょうか? よろしくお願いいたします。
- 締切済み
- Linux系OS
- とある特定のフォルダで無限ループに陥る
Sub 全てのファイル名を振り直す() i = 1 Set myFSO = CreateObject("Scripting.FileSystemObject") With myFSO With .GetFolder(フォルダ名) For Each MyFolder In .SubFolders NewFolder = MyFolder.Name Call フォルダ内のファイル名を変更する(NewFolder) Next End With End With Set myFSO = Nothing End Sub Sub フォルダ内のファイル名を変更する(NewFolder As String) Debug.Print NewFolder strPathName = フォルダ名 & NewFolder & "\" strFileName = Dir(strPathName & "*.*") Do While strFileName <> "" Name strPathName & "\" & strFileName As strPathName & "\" & Format(i, "0000") & ".gif" i = i + 1 strFileName = Dir() Loop End Sub こんな感じでフォルダの中のファイル名をループし、変更しているのですが とあるフォルダの中をループすると、 無限ループに陥ります。 原因は、 strFileName = Dir(strPathName & "*.*") Do While strFileName <> "" の時点でファイル名を変更するのでいつまでたっても終わりが来ないからなのですが フォルダ仮1は大丈夫なのに、フォルダ仮2をループし始めると無限ループに陥ります。 フォルダ名に問題があるのでしょうか? フォルダ名はネットには書けません。
- ベストアンサー
- オフィス系ソフト
- シェルスクリプトでオラクルのエラーメッセージを取得するには
シェルスクリプト上でsqlplusを起動し、さらにSQLの実行結果(エラーメッセージ)を取得するにはどのようにシェルをどのように記述すればよいでしょうか? ---------------------------------------- sqlplus scott/tiger@hoge SQL>select * from dep; * 1行でエラーが発生しました。 ORA-00942: 表またはビューが存在しません。 ---------------------------------------- 上記のようなコマンド実行とエラーメッセージの取得を行いたいのですが、シェルについては超初心者のためよく分かりません。 実行環境は以下の通りですが、ご存知の方教えて頂けないでしょうか。よろしくお願いします。 OS:Red Hat Linux 8.0 DB:Oracle8.1.7
- ベストアンサー
- Oracle