どあら さん、ご回答ありがとうございました。
'%''%'の部分を'%'%'にしていました。
シングルクォーテーションを二つ付けないと
いけないのですか。
>ガオーさん
ん~、今更ながらに試してみましたが、私の所では問題なく実行できるのですが…
scott.empのenameに'入りのデータを用意して、
前回の書き込みのSQLのテーブル名(test)をempに、項目名(field)をenameに変更しただけです。ちゃんと抽出できています。
要は文字列中の''が'と解釈される…という点がミソです。そのまま私の書き込みをcopy&pasteして、該当部分(テーブル名/項目名)を書き換えてみても同じですか?
select * from test where instrb(field, '''') != 0; なんて変化球でもいけます。
ORA-0933という事ですが、ご使用になっているツールや開発環境によっては、その言語など特有の加工(DBに投げる文字列が、私の例と同じになる様に)はしてくださいね。あくまでも私の回答はSQLでのサンプルですから、SQL*Plusや、osqledditで実行できる(…筈)という物です。
あと…ここはおがわさんのツール関連の掲示板ですので、あまり長々とSQL入門的な話題をするのも気が引けます。osqleditが正しくSQL文を解釈しない…というのであれば趣旨的に問題はないと思いますが…、Oracle入門的なお話…なのであれば、別の板を探された方が良いかも知れません。
以上。お役に立てなくてすみません。
どあら さん、早速のお返事ありがとうございます。
select * from test where field like '%''%';では以下のようなエラーになりました。
ORA-01756: 引用符付き文字列が正しく終了していません
select * from test where field like '%' || chr(39) || '%';では以下のようなエラーになりました。
ORA-00933: SQLコマンドが正しく終了されていません
>ガオーさん
select * from test where field like '%''%';
または
select * from test where field like '%' || chr(39) || '%';
…って事でいいのかな?
どあら さん、お返事ありがとうございます。
行いことは、fieldフィールドにシングルクォーテーションが入っている
データのみ抽出したいのですが・・・・・
Oracleだと仮定して…
select * from test where field = 'ABC''';
または
select * from test where field = 'ABC' || chr(39);
…とか、そういう事でしょうか?
条件式に以下のようなシングルクォーテーションは付けれないのでしょうか?
SELECT * FROM TEST WHERE FIELD = 'ABC''
>NNさん
ご要望ありがとうございます。
検討させていただきます。
現在オラクル8i、PL/SQL、VBを使っています。
ストアドプロシージャをコールする順で
VBからストアドプロシージャ①呼出、①からパッケージ呼出、パッケージから
ストアドプロシージャ②呼出と言う処理があり、
オラクルに接続したままストアドプロシージャ②を再コンパイルしVBで実行を行うと
パッケージが無効となり
ORA-06508 コールしているプログラム単位がみつかりません。
というメッセージが出るのですが、VBを終了させオラクルに再接続し実行すると
エラーも出ず正常に完了します。
この時にオラクルとのセッションを再接続せずにオラクルのエラーを回避する方法があれば
良いのですが、知っている方がいれば教え下さい。
それともVB側でORA-06508 発生時、セッションの再接続処理を入れるしか
ないのでしょうか?
よろしくお願いします。
先日仕事で OSqlEditという便利なソフトがあるということを聞き
ダウンロードし テストさせていただいております
(非常に便利ですね シェア登録しなければ・・)
もしかして過去話題になっているかもしれませんが
ログイン時に USER,PASSWORD、TNSが選択できますが
(ログイン情報の設定で設定)
その際 日本語でDB名称などを入力 設定できるように出来ないでしょうか?
たくさんのDBがある場合 どれがどれだかわからなくなり(笑)
備考欄のようなものがあると 非常に便利だなーと思っています
ご検討よろしくお願いします
>KOSEKIさん
ORA-03106はORACLE内部のエラーなので、根本的な解決策は
ORACLEのパッチ適用になると思います。
実行したSQLがデータベースリンクで別のサーバのテーブルを参照する場合、
Oracleサーバ間のバージョンや文字コードの不一致により発生している
可能性があります。この場合、ツール(osqledit)側での回避は困難です。
また、Oracle Clientのバージョンが8.1.7.0.0の場合、不安定かもしれません。
もし8.1.7.4.2などへバージョンアップできれば安定すると思います。
先ほどのメッセージの補足です。
エラーが発生した場合に、ログアウトした後、再ログインしてSQL文を走らせてもエラーが発生します。
ただし、日を改めるとエラーが発生するときとしないときがあります。(もちろん、SQL文は同じです)
ジョセフさんのメッセージと似たような書き込みになってしまうのですが、「ORA-03106: 致命的な2タスク通信プロトコル・エラーが発生しました。」というエラーが不定期に発生します。
OSqlEditのバージョンは「6.8.4.2」です。
また、Oracleのバージョンは「8.1.7」です。(クライアントも含む)また、OSは、サーバ側がWindowsServer2000で、クライアント側がWindows2000SP2です。
我が社の環境では、Oracle client 及び OS のバージョンアップ(SPのアップも含む)ができない状況なので、「OCI7 APIを使う」及び「ブロックモードでfetchする」を試してみたのですが、時折エラーが発生します。
エラー発生時のSQLは確定していません。(同じSQLでも、発生するときとしないときがあります)
他の回避方法があれば教えてください。
スクロールバーの件、修正されていることを確認しました。
こちらの環境のせいなのかと思い、多少あきらめかけていたので、本当に助かります。どうもありがとございます。
>sarutypeさん
スクロールバーがずれる件、osqledit 6.8.4.2で修正しました。
>あーさーさん
ご要望ありがとうございます。
検討させていただきます。
>ジョセフ さん
Oracleサーバとクライアント(SQL*Net)のバージョンが違う場合や、
データベースリンク間のOracleのバージョンや文字コードが違う場合に
エラーが発生したり異常終了することがあります。
以下のいずれかの方法で回避できるかも知れません。お試しください。
(1)Oracle clientをバージョンアップする
(2)osqleditのログイン画面で、「OCI7 APIを使う」をチェックする
これをチェックすると、OCI(Oracle Call Interface)のVersion7を利用します。
(チェックしないとVer8を使います)
osqleditはOCI7のコードのほうが安定しているので、エラーが発生しないと思います。
ただし、OCI7を使用する場合、LOBデータ型の検索が実行できません。
(3)osqleditのオプション画面の機能タブで、「ブロックモードでfetchする」を
チェックする(OCI7 APIのチェックは外す)
ただし、このオプションをチェックした場合、時間のかかる検索SQLを実行した
ときに、処理をキャンセルしても、すぐに終了しません
osqleditには、いつもお世話になっています
最新版数を使用していますが。「ORA-03106: 致命的な2タスク通信プロトコル・エラーが発生しました。」が発生します。
安定版では、発生しません。
osqleditには、いつもお世話になっています
テーブルリストの右クリックあたりで
SQL*Loader用のコントロールファイルを作成する機能が欲しいかな~
っと思ったりしてみました
>クロミさん
今のところ、MYSQL用の開発予定はありません。
MySQL用のSQLエディタの開発予定はありますか?
>OSQLEDIT Ver6.8.4.1 さん
ご報告ありがとうございます。
こちらの環境では再現できませんでした。
もう少し調べてみます。
テーブル一覧からSQL文作成でSQL作成後
ツール→テキスト変換→VB
で実行するとSQLエラーではなくプログラム自体が落ちます
ありがとうございます。
私も(2)を試しました。
とてもいいかんじです。
早速のご回答ありがとうございます。
>(2)osqleditのログイン画面で、「OCI7 APIを使う」をチェックする
を試してみたところ、問題なく動作いたしました。
本当にありがとうございました。
>sarutypeさん
報告ありがとうございます。調査してみます。
>でんじろうさん、FALさん
Oracleサーバとクライアント(SQL*Net)のバージョンが違う場合や、
データベースリンク間のOracleのバージョンや文字コードが違う場合に
エラーが発生したり異常終了することがあります。
以下のいずれかの方法で回避できるかも知れません。お試しください。
(1)Oracle clientをバージョンアップする
(2)osqleditのログイン画面で、「OCI7 APIを使う」をチェックする
これをチェックすると、OCI(Oracle Call Interface)のVersion7を利用します。
(チェックしないとVer8を使います)
osqleditはOCI7のコードのほうが安定しているので、エラーが発生しないと思います。
ただし、OCI7を使用する場合、LOBデータ型の検索が実行できません。
(3)osqleditのオプション画面の機能タブで、「ブロックモードでfetchする」を
チェックする(OCI7 APIのチェックは外す)
ただし、このオプションをチェックした場合、時間のかかる検索SQLを実行した
ときに、処理をキャンセルしても、すぐに終了しません
はじめまして。osqleditにはいつも助けられています。
今回あるテーブルで、SELECT時に「ORA-03120: 2タスク変換ルーチン: 整数値がオーバーフローしました」が頻発しています。現象としては、
・接続直後のSELECTは実行される
・別テーブルをSELECT後、再度問題のテーブルをSELECTするとORA-03120が発生する
・接続直後のSELECTでも、ORDER BY句を付けるとエラーが発生することがある。(WHERE句で絞って、返ってくる行数が少ない場合は実行される)
・LONGのバッファを減らしてみても効果はない
・安定版やosqlgridでは、問題なく動作する
問題のテーブルは、VARCHAR2とNUMBERの2種類のタイプしか使用していない、何の変哲もないテーブルです。
回避策がございましたら御教授願います。
osqledit 6.8.4.1を使うと結構なんでもないSELECT文で異常終了します。
安定版5.7.6.5で同じSQLを実行すると落ちません。
自分の環境がそうなのか、それともここらへんが安定版とそうではない版の違いなのかを知りたいです。
よろしくお願いします。
お疲れ様です。いつもoedit を利用させてもらっています。oeditを賞賛するために投稿しました。
わたしは かなり前からoedit を使っています。細かい設定が可能で非常に便利です。
ところで、わたしは定期的にフリーウェアを調査することがあります。思わぬ掘り出し物などが見つかります。
このたび、ほかのテキスト エディターの性能を調査するため、複数のフリーウェアを使ってみました。
その結果、相変わらずoedit が最も使いやすいことが わかりました。
特に「行間」「文字間」の設定などが ほかのツールには ないため、大変重宝しております。
引き続きoedit を使わせていただきます。ありがとうございます。
>sarutypeさん
■スクロールバー位置ズレの件
これって、「結果を表示させ」「下の方」…という事で"グリッド側"の"縦"スクロールバーのお話ですよね?
軽く試してみたのですが、私のところでは現象は再現しませんでした。一応、エディタ部/グリッド部の両方について、画面内にフォーカスがある場合、ない場合、分割した状態で画面内にフォーカスがある場合、ない場合と試してみましたが、スクロールバーがずれる現象はおきませんでした。ついでに横分割と横スクロールバーも試してみましたが…ズレませんでした。今手近にXP環境がないので、OSはWin2k-SP4です。
Win2k-SP4
Oracle 9.2.0.4
osqledit 6.8.4.1
>木下牛さん
■グリッドの縦横切替
以前私もリクエストした事があります。行列変換、できると結構データの視認性が上がる場合があるんですよね(特に項目数の多めなTBLなど)。無くてもExcelなど、他のツールで実現できるっちゃできるので、必須だとは思わないんですが、あると便利な感じは私もします。○bject○rowserで、数少ない私が好きな機能のひとつです。
内部的にどういう処理をしているのかによって、修正の重さも変わってくるだろうと思うので、おがわさんには「余裕があったら…」とお願いした記憶があります。
■gridコピーでinsert文
これはオブジェクトリストで、テーブルを右クリック→[データエクスポート]で似たような事はできますね。グリッドのデータをinsert文に…となると、2つ以上のテーブルをjoinしている場合など、insert先テーブルはどれか?とか、キー項目は必ず含めなければ中途半端なinsert文になってしまう…とか、キメの問題でしょうがクセのある決定をしなければならなくなると思います。
>あーさーさん
これまた茶々ですが、木下牛さんも、Excelで縦横入替えして見ていると仰っています。
以上。
OSQLEditについて質問です。
タブを複数使用している場合で、タブ1でSELECT文を実行して結果を表示させ、スクロールバーを動かして下の方の行を表示させ(フォーカスも移動)、次にタブ2で別のSELECT文を実行して結果を表示し、タブ1に切り替えるとタブ1のスクロールバーが先頭に戻ってしまいます(フォーカスは先頭ではなく元の位置にあるようです)。先頭に戻らないようにする方法はありますでしょうか?
当方はWindowsXP SP2、Oracle7.3.5です。
>木下牛さん
>グリッドの縦横入れ替え機能
EXCELの機能で、形式を選択して貼り付けで
「行列を入れ替える」というチェックボックスを
指定することで出来ると思います
みなさん、要望や不具合の報告などありがとうございます。
いただいたご要望については、検討させていただきます。
>モリさん
Unicodeのファイルを開くときにoeditが異常終了するバグがあり、
このためかもしれません。
>はたぼーさん
この動作が仕様です。
oeditで「タブをスペースに変換」の機能を使ってみましたが、
C言語のコメント(/* ~ */ や // ~ )文の中のタブをスペースに変換しようとしても変換してくれません。
コメント開始記号の /* や //を削除するとちゃんと変換してくれます。
仕様なのか不具合なのかわからないので教えていただきたいです。
osqledit、osqlgridともに大変重宝しております。
要望なのですが
現在データベースの文字コードがUTF-8の環境で使用しているのですが、
データの右クリックで表示される「データ参照(xbyte)」が実際に格納されている
バイト数と異なります。
過去ログを見た感じだとOracle接続時に文字コード変換がかかっているのだと思いますが、対応できるのであればしていただけたらなぁと思います。
oeditを使用させていただいてます。
IEのソース表示の時にoeditが落ちてしまいます。
何が原因なのでしょうか??
と、書き終わったトコロで思ったんですが、もし「リロード機能」っていうのを実装するとなると、この自動実行系の誤操作や勘違いに起因するデータ破壊やオブジェクト操作系の事故が起きそうな気がします。実装するにしても、かなり明快で誤操作を防ぐようなUIが必要になりそうだな~とか。思います。
>しんさん
かなり個人的な印象…というか茶々です…(と前置き)
SQLリロード機能って、使い道が多数あるように思えないんですが。セッションを定期的にosqleditから表示されるgridで目で確認…する事も無いような…固定監視したいのであれば、timerとかと絡めてスクリプトにした方がよっぽど目的を果たせそうだし…(情報突っ込みたければdbms_application_infoとか使ったりすれば…)
というか、多数あるのであれば、例をもう少したくさん列挙された方が伝わると思います。代表がセッション監視では…なんとなく、昔の電子手帳の手書きメモの様に使えないオーラを感じてしまいます(なんとなく便利そうで、結局買った頃にいじってみただけ…ってヤツ)。私自身、不勉強でイメージできていないだけかも知れませんが。。。
後半部分も、「デバッグ」と仰っているのが具体的にどんな作業を想定されているのか、イマイチ伝わってきません。もう少しosqleditを使って「こう」とか、話をイメージしやすくした方がおがわさんにも伝わりやすいのでは?と思います。これまた私が不勉強なだけかも知れませんが…。全然イメージが伝わってきませんでした。私がソフト作者だったら「一体何を検討すればいいんだろう?」とか思いそうだな…とか感じました。もしかしたらスゴいアイデアなのかも知れないし、だとしたらもう少し話を具体的にした方がいいんでは?とか思い、茶々を入れさせていただきました。
…ってか、これ、osqleditですかね。psqleditですかね?それともgrid…ですかね?
茶々太郎。
いつも大変便利に使用させて頂いています。
最近ふと思い付いたのですが、SQLの自動発行(リロード)機能なんてどうでしょうか。
セッションの定期確認。トランザクション中の状態変化監視など使い道は多数有りそうです。
現在デバッグ中にSQLを発行する場合、ステップ実行してはSQLを流し、またステップを進め~の繰り返しですが、自動的にSQLを流してくれれば、デバッグにも集中できそうです。
ご検討下さい。
oedit でブラウザ表示したとき、ファイル更新されないように
某サイトの推奨で、貴 oedit を使ってみました。
巨大なファイルも高速で開けるし、htmlをボタン一発でブラウザ表示できるので、感激しました。
ひとつ気が付いたのは、ファイルを更新していないのに、ブラウザ表示させると、ファイルに更新日が入ってしまいます。
Version 4.8.4.0です。
ファイル更新しないときは、更新日が入らないようにしていただけると、良いと思います。
ご検討下さい。
http://makotowatana.ld.infoseek.co.jp/
Object○rowser最高と思っていましたがあっさりOsqlEdit最高に宗旨替えしました。
補完機能がもう手放せない感じです。
次期バージョンで追加検討をしていただきたい機能があるので書かせて頂きます。
1.グリッドの縦横入れ替え機能
列数が多いTBLはEXCELに貼って縦横入れ替えして見たりしているので…
2.グリッドのデータコピー時にSQLとしてコピー
選択範囲をINSERT文とかにしてくれるとうれしいです
気が向いたら考えてみてください。。。
先ほどは書きかけで送信してしまいました。
OSqlEditを便利に使わせてもらっております。
以下の現象がありますので、解決できないか検討をお願いします。
PL/SQL名の変換機能で、
END;
の行がはさまれてしまうと、補完されなくなってしまいます。
具体的には、一つのFUNCTIONの中に、サブFUNCTIONを作成すると、
サブFUNCTIONの END; 以降では、補完がされなくなってしまいます。
おそらく、スコープの範囲などの観点でそうなっているのではないかと
思うのですが、解決する手段はないでしょうか?
お手数ですが、検討のほど、よろしくお願いいたします。
OSqlEditを便利に使わせてもらっております。
以下の現象がありますので、解決できないか検討をお願いします。
PL/SQL名の変換機能で、
END;
>どあらさん
確認してみましたが候補に挙がってこないのは、
パッケージ変数名をパッケージ外から参照した時のようです。
アンダーバーに関係なく、パッケージとは無関係な項目が列挙されているあたり、
そもそも対応していないような気がしてきました・・・・。
ならば対応して欲しいなぁ、と思ったりもしてます (笑)
>どあらさん
本当ですね。
フォントを変更して使用することにします。
ありがとうございました。
> haradaさん
ご使用になっているフォントによるみたいですね。私の環境ではTeminalで、全角のアンダーバーが表示されない事を確認しました。私は普段MS ゴシック等にて使用していますが、全角_の表示は問題なく出来ています。
> suさん
私のところでは各オブジェクト類(テーブルやストアド他)にしても属性名にしても、'_'を含む補完ができていますが…。内部の文字コードなんかも関係するんでしょうか。(JAPANESE_JAPAN.JA16SJIS)
[ツール]-[オプション]-[機能(2)]の補完設定あたりも確認してみると良いかも。
osqledit v6.8.4.1、Win2k-SP4にて確認。
おむかいさんの発言で思い出したのですが、
OSqlEditのキーワード補完において、
補完対象の項目名に '_' アンダーバーが含まれる場合は、
リストに挙がって来ないようです。
お暇な時にでも対応して頂けると幸いです。
お世話になります。
OSqlEditで全角のアンダーバー「_」を入力すると表示されません。
最新のExeで確認しましたが同じでした。
宜しくお願い致します。
oedit便利に使わせてもらっております。
以下要望があります。ご検討ください。
正規表現で多彩な検索が出来、その上目的の
文字列が全文に渡り選択(表示)できるのがたいへん
便利で良いです。
その後、その選択文字列や行だけを取り出したいときがあります。
そこで「選択文字列の強調表示を反転」(選択の反転)
と「選択文字列の削除」があるとより便利になります。
よろしくお願いいたします。
>OutInOutさん
ご要望ありがとうございます。
検討させていただきます。