アクセスVBAでオラクルにつないだときのSQL記載方法

このQ&Aのポイント
  • アクセスVBAでオラクルに接続し、SQLを発行する方法を教えてください。
  • 検索時にあいまい検索を行いたい場合、どのように記述すれば良いでしょうか?
  • また、文字や記号の意味についても理解が不足しています。あいまい検索の記述方法とともにご教授ください。
回答を見る
  • ベストアンサー

アクセスVBAでオラクルにつないだときのSQL記載方法

教えてください。 アクセスのVBAでオラクルにつないで命令を発行しています。 検索がしたいのですが、 stSQL = "select * from DB where AA = '" & n1 & "'" は、うまくいきますが、あいまい検索の場合はどのようにかけばよいでしょうか? stSQL = "select * from DB where AA = '" & n1% & "'"とか、 stSQL = "select * from DB where AA = '" & n1 & "' & "%"" とかはうまくいきません。 そもそも、"や&や'の意味がいまいちわかっていないのですが・・、 どなたかあいまい検索の記載方法をご伝授下さい。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.1

オラクルは使ったことがありませんがSQLでは stSQL = "select * from DB where AA  like '" & n1 "*;'" となるのでは

chelny
質問者

お礼

おそくなってしまって申し訳ありません。 ありがとうございました。

関連するQ&A

  • SQLの書き方

    電話番号がcsvファイルに000-0000-0000 という形で たくさん入っています。これをアクセスのフォームを使って 読み込んで、オラクルサーバーとつなげ、SQLを発行しています。 DB上には電話番後はtel1 000 tel2 0000 tel3 0000 というように、フィールドが分かれてハイフンなしで入っています。 これを抜くためにはどのようなSQLをかいたらいいのでしょうか? 苦し紛れに書いてみたSQLは select telno1_1||'-'||telno1_2||'-'||telno1_3 as TEL1,* from DB where TEL1 = '" & n1 & "'" というものです。 n1にはcsvから読み込んだ電話番号が000-0000-0000の形で入っています。 どなたか教えてください。 宜しくお願いします。

  • oracle sql

    oracle sql SELECT TO_CHAR(sysdate,'eeyy"年 "month" "dd"日"','nls_calendar = ''Japanese Imperial''') as AA FROM DUAL というSQLを記述した際の検索結果は 平成22年 2月 03日 という値になります。 日の部分の前0を消したいのですが、なにか方法はありませんか? (「03日」→「3日」)

  • oracleのSQLパフォーマンスについて

    oracleのSQLパフォーマンスについて質問です。 当方、SQLは初めてで、ずぶの素人ですが、SQLパフォーマンスを改善することになりました。 質問の仕方も悪いとは思いますが、お力添えをいただきたいと思います。 【質問1】 DBのレコード件数は、SQLパフォーマンスにどう影響するでしょうか?以下例のようなことが知りたいです。 例1 INDEXのないテーブルに対しSQLを発行する場合、レコード件数の多いDBとレコード件数の少ないDBでは、レコード件数が少ない方が、パフォーマンスが良い? (前提として、検索対象DBは、レコード件数以外に差がないとする) 例2 WHERE句にINDEX項目を使用した場合、DBのレコード件数はパフォーマンスに影響しない (前提として、アクセスパスは適切で、検索対象をうまく絞り込むことができる) 例3 WHERE句にINDEX項目を使用したSQLをレコード件数の多いDBに発行する場合と、WHERE句にINDEX項目がないSQLをレコード件数の少ないDBに発行する場合では、どちらがパフォーマンスがよいのか (前提として検索対象DBは、レコード件数以外に差がないとする) 【質問2】 INDEXをDBに追加すると、INSERT、UPDATE、DELETEの際に、どのくらい影響するのでしょうか? 対象のDBは、5項目あり、400万件くらいのレコードがあります。また、複合項目(2項目)のプライマリキーと、単一INDEXがついており、新たに3項目の複合INDEXを追加しようとしています。 以上、よろしくお願いいたします。

  • 最近の20件を取得するSQL

     現在PostgreSQL上にあるDBをOracleに移行しようとしていますが、Oracleに詳しくないためご教示いただきたく存じます。  2000万行ほどの売り上げテーブルがあります。  そこである商品やジャンルで絞り込みをおこない(または全く絞り込みをせず)最近20件を検索したいと思っています。(正確に言うと、次ページ、前ページなどでその前後を取得する機能も必要です。)  で、この最近の20件、というところで躓いています。  いろいろと検索してみると select * from ( select 検索項目... from sold where 絞り込み条件 order by sold_date desc ) where rownum<20; なんていう例が載っていたりするのですが、これだと絞り込みがない場合に内側のselect文で2000万件なめてしまうので論外です。(試しにやってみたら30秒くらいかかりました)  別段レアなケースでもなく、こういう要件はとても一般的だと思うのですが、Oracleではどのように実装するのが一般的なのでしょうか。  よろしくお願いいたします。

  • SQL文について

    テーブルの結合について教えてください。 (DBはオラクルです) select * from table1,table2 where table1.カラム名=table2.カラム名; で、結合が出来ることは分かりました。 やりたいことはテーブルの結合と、ある期間のデータを持ってきたいのです。 select カラム名 from table1 where カラム名 between '20020213' and '20020218'; で期間を決めて引き出すやり方も分かっています。 一度に結合と期間を決めて引き出すやりかたってどうすればよいですか? それとも不可能ですか? 教えてください。

  • oracle sqlについて

    お世話になります。 Oracle Sqlでの質問を致します。 Oracleのデータで重複データを削除したく 下記の構文を書いたのですが、 右括弧がありませんと言うエラーが出てしまいます。 見た目括弧はちゃんとあると思うのですが、 どこが悪いのか分かりません。 ご親切な方、ご教示くださいます様、 宜しくお願いいたします。          記 DELETE FROM D入庫データ WHERE ID NOT IN ( SELECT MIN(ID) FROM D入庫データ GROUP BY PPID,台車番号,入庫数量,ロット番号,TO_CHAR(登録日時,'yyyy,mm,dd') WHERE TO_CHAR(SYSDATE,'yyyy/mm/dd)=TO_CHAR(登録日時,'yyyy/mm/dd') );

  • oracle10g へ、アクセスでつないで モジュール上でプログラミン

    oracle10g へ、アクセスでつないで モジュール上でプログラミングをしています。 オラクルDB上のデータ型は"date"なのですが、(例:2007/03/09 12:23:42)、 アクセスのモジュール上に組んだSQLで、 stSQL = "select ID " _ & "from xx.DBNAME " _ & "where KOUSIN_DATE between " & ototoi & " and " & honzitu & "" のように記載しています。 そして、ototoiに入れるデータは ototoi = DateAdd("d", -2, Now) のパターンと ototoi = Format(DateAdd("d", -2, Now), "yyyymmdd") のパターンの2通りでためしてみたのですが、 どちらもうまくいきませんでした。 どうしたらSQLがうまくデータを拾ってこれるでしょうか?? 漠然とした質問で申し訳ありませんが、宜しくお願いします。

  • ACCESSのVBAのSQLを教えてください。

    テーブル1とテーブル2があり、それをUNIONで結合して、リンクさせたOracleのテーブルキーと 結合し、Oracleのテーブルにないキーを検索したいのですが、うまく出来ません。 ACCESSのVBAで作りたいのですが・・どうかご教授願います。 構成  テーブル1   項目名  Key 顧客コード1   名前 テーブル2     項目名   Key 顧客コード1   Key 顧客コード2      名前 Oracleのテーブル  テーブルB     項目名  Key 管理コード  テーブル1の顧客コード1とテーブル2の顧客コード2をUNIONでまとめたものをA1としA1.顧客コードとします それとOracleのテーブルであるテーブルBの管理コードと結合して テーブルBにないA1の顧客コードを抽出するSQL文を作成したいと思います。 (管理コード,顧客コード1,顧客コード2は同じ属性、同じ桁数) SELECT A1.管理コード FROM ( SELECT T1.顧客コード1 as 顧客コード FROM テーブル1 T1 UNION SELECT T2.顧客コード2 as 顧客コード FROM テーブル2 T2 )A1, テーブルB WHERE A1.顧客コード = テーブルB.管理コード AND テーブルB.管理コード IS NULL; エラーにはなりませんが、実行結果は、管理コード 0件です。データ的には、テーブルB側にはテーブル1にはあるがテーブルB側にないデータはあります。

  • SQLについて

    初心者です。 データベースの操作をしているのですが、 テーブル内からある言葉が含まれる行を全て取り出すようにしたいです。 たとえば「話す」という言葉で検索して、「話すこと」「話すには」「話す術」などが結果として表れるようにしたいです。 Select A from B where 条件 where の後にぴったりの命令はあるのでしょうか。 (vb.net)からの操作です。 どなたか教えてください

  • 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 よろしくお願いします。

専門家に質問してみよう