- ベストアンサー
Access→Oracleへ移行後MAX()が使えない
Accessで運用していたDBをOracleへ移行したところ、AccessのクエリでMAX()関数など集計系の関数が使えなくなりました。 エラーのSQL例: SELECT MAX(MESSAGE) FROM LOGDATA; ※MESSAGEはVARCHAR(2000) エラーメッセージ: 集計関数の引数(MESSAGE)にメモ型またはOLEオブジェクト型のフィールドを指定することはできません エラーを回避するにはどうすればいいのでしょうか? Microsoft Access 2003 Oracle 10g R2
- Oracle
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
回答できるかと思って少し調べてみたのですが、 Accessをほとんど使用していない私には 少し難しかったみたいです。 こんな情報が載っていましたが、 いかがでしょうか。 的外れならすみません。 マイクロソフトサポートページ内のコメントを以下に引用いたします。 「メモ型フィールドまたは OLE オブジェクト型、クエリのフィールドでは Access グループ化できません。 また、SQL ステートメントの GROUP BY 句はメモ型または OLE オブジェクト型のフィールドを含めることはできません。 含めるにはメモ型または OLE オブジェクト フィールドを集計クエリは、QBE グリッドにフィールドをドラッグし、そのフィールドの集計] 行で、集計 (合計) 関数 First() または Last() を選択します。」
関連するQ&A
- OracleのSQLについて
OracleのSQLについて質問があります。 VARCHAR2をReturnするFunction「GETKANANAME(引数はID)」があるとします。 このとき Update NAMELIST SET kananame = (select GETKANANAME('00001') from dual); とすると、kananameに何も設定されません。 (エラーメッセージなどは何も出ていません。) select GETKANANAME('00001') from dual; だと期待する値が帰ってくるのですが…。 何か間違ったSQL文なのでしょうか?
- 締切済み
- Oracle
- Access→Oracleにつなぐ際のエラーの解決方法教えてください。
まずAccess2003 を起動させます。 フォームからデータを取りだす際にORACLEを介す必要のある データベースが存在します。 ORACLEへのログイン画面からパスワードとIDを入れ、 “削除クエリを押すとテーブルのデータが変更されます” という画面が出るので“YES”ボタンを押します。 次に“追加クエリを押すとテーブルのデータが変更されます” という画面が出るので“YES”ボタンを押します。 すると『入力テーブルまたはクエリ’○○○’が見つかりませんでした。 そのテーブルやクエリが存在していること、または名前が正しいことを確認してください。』 というエラーメッセージが出ます。 そして、アクションの実行エラーのウィンドウが表示され、 ======================= マクロ名 M_Login.OK 条件名 True アクション名 クエリを開く 引数 △△,××,☆☆ ======================== が表示されました。 この実行エラーを出さなくする為にはどうすればいいでしょうか?
- 締切済み
- Oracle
- 「引数が無効です」ACCESS
いつもお世話になっています。Accessの初心者です。 今 Access2003にて OLEオブジェクトを利用して画像を入れて データーベースを作成しています。 ところが データを100件ほど入力したら 引数が無効です と エラーがでてしまいます。 250件ぐらいのデーターを入れたいのですが、エラーの回避方法を教えていただきたいです。
- ベストアンサー
- オフィス系ソフト
- AccessからOracleへのリンクテーブル時の型情報?
Access始めたばかりの初心者です。 現在Oracle10gのデータベースのとあるテーブルを をAccess2000でリンクし、クエリで抽出したものをレポートに表示 しようとしています。 そのテーブル上に、 Oracle上ではVARCHAR2(6バイト)の日付データがあります。 例) 200806 これをAccessのクエリ上で変換し、 "6月" と表示させたいのですが、 なぜかうまくいきません。 Oracle上の項目名が YM だとすると、 Replace(Right([YM], 2), "0", "") & "月" こういった関数でうまくいきそうなものですが・・ もしかしてOracleのVARCHAR2はリンクすると文字列型以外の型として 扱われるのでしょうか・・ どなたかご存じの方、ご教授くださいませ。
- 締切済み
- Oracle
- オラクルDBからのデータ取得について
こんばんわ。 オラクル(sqlplus)についての質問2点です。 (1)シェルからオラクルDBへアクセスし、データを取得したいのですが、 select時に、結果のヘッダーをつけずに結果(データ)のみをファイル出力することは可能でしょうか? (DB2で言うところの「-x」オプションのような・・・) (2)エラー時にSQLコードを取得したいのですが、SQLコードをファイル出力することは可能でしょうか? オラクルは初心者で、行き詰まってしまいました・・・ どうかよろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- オラクル11gでMAXを使うとエラーになった。
お世話になります。 WIN7 Oracle11g の環境で dim rs as new adodb.recordset sql = "select max(sal) from file_name where pcname= '" & PCN & "'" rs.open sql,cn,adopenstatic,adlockoptimistic を実行すると ora-00937 のエラーになってしまいます。 oracle9iでは、エラーにならなかったのですが、なにか変ったのでしょうか。 どなたかご教授頂ければ助かります。
- ベストアンサー
- Oracle
- Oracle 10.2.0 でMAX集計がおかしい!?
VB6 で oo4o を使って Oracle DB開発をしています。 Oralce 8.1.6 から Oracle10.2.0 にサーバを切り替えました。 bというテーブルがあって、 a c d ---- ------ ----- 10 2 1 20 3 1 30 4 1 40 5 1 50 6 2 というデータがあったとします。 Select MAX(a) as a from b WHERE d=1 のようなSQLをVBから発行したときに SQL*PLUSでは、 a ---- 40 という結果が返ってくるのですが、VBでは、 a --- 10 20 30 40 のように複数行のレコードセットが帰ってきます。そのため、最大行を取得できません。Oracle8 のときは、SQL*PLUSと同じ結果が返ってきていました。ちなみに Select MAX(a) as a from b WHERE d=1 GROUP BY d ~~~~~~~~~~ と、GROUP BYを付けると、ただしい(SQL_PLUSと同じ値)値が取得できます。 Oracle10.2.0の問題か、oo4oの問題かと考えています。 ちなみにoo4oのオブジェクトは、 CreateObject("OracleInProcServer.XOraSession") で作成していて、クライアントのバージョンは 9.2.0.4.4です。 長文で失礼しますが、どなたかSQLを変更せずに解決する方法をご存じないでしょうか?
- ベストアンサー
- Oracle
- PostgreSQLからOracleへの移行で
はじめまして。 PostgreSQL+PHP4で動作していたスクリプトを Oracle+PHP4に移行する作業をしています。 SELECTで取得された行の件数を得る為に、 pg_num_rows(result) を使っている箇所があるのですが、それと 同様の動作をするOCI関数はあるでしょうか? ※都合により、DBアクセス関数は全てOCI関数での 実装を予定しています。 ora_numrows()が使えれば良かったんですけれど。。
- 締切済み
- PHP
- DBの移行について
DBの移行について 担当しているシステムのデータベースが、 DB2のV8.1からOracle11gに移行する予定です。 色々と調査してますが、 移行にはSQL関数の違いがネックになるかと考えています。 DB2にはある関数がOracleにはないとか、 同じ関数でも結果が違うとか・・・。 その辺をうまく一覧表に纏めたマッピング表みたいなのって、 ネットにあれば教えて頂ければと思います。 当然、自分でも探してますが、なかなかいいのがありません。 また、Oracleのサイトを覗いてみましたが、 結局問い合わせてくれって事になってます。 (まだまだ調査の段階なので、問い合わせるほどではないんで) よろしくお願いします。
- ベストアンサー
- Oracle
- PHP varcharからintへの変換
varcharで取得したカラム「ID」のMAX値に+1して、DBに登録させようとしています。 ・DB の項目 ID varchar(7) ・ IDの内容 A000001、A000002・・・ ・ソース $sql = "select cast(substr(max(ID),2,6) as unsigned integer)+1 from テーブル名"; $res = $conn->query($sql); $row = $res->fetchRow(); $mem_id_mx = ?????; =>変数 $mem_id_mx にどのような形でMAX+1値を代入すればよいのでしょうか? また、"A" の先頭への付加とゼロパディングの方法が分からず非常に困っております。 どなたかご回答頂けますと幸いです。
- ベストアンサー
- PHP
お礼
解決しました。ありがとうございます。 MAX() -> LAST() MIN() -> FIRST()