アプリ版:「スタンプのみでお礼する」機能のリリースについて

初心者です。
Oracle8、 Pro*Cで開発をしているのですが、下記のSQLでコンパイルエラーが出てしまいます。
SQLPlus上で数値を直値にしては問題なく動くのですが、うまくいきません。
何が問題なのでしょうか?

やろうとしていることは、
m件(iRecordFm)からn件(iMax)までのデータを取得したいのです。
その際にいくつかWhere条件も加えたいのです。

どうぞよろしくお願いいたします。


--【エラー】-----------------------------------------------
PCC-S-02201, 記号"order"が見つかりました。 次のうちの1つが入るとき:
) * +
- / | union, at, connect, and, group, having, intersect,
minus, or, start, with, day, hour, minute, month, second,
year,
記号")" は継続のために"order"に代わりました。

--【コード】-----------------------------------------------
/*ProC(仮) 実際は.cからパラメタで来ます。*/
char cCcd[] = "01";
char cAssignMon[] ="07";
char cToday[] = "2005/06/23";
int iRecordFm = 20;
int iMax = 22;

/*エラーが出るSQL*/
EXEC SQL DECLARE c_fireList CURSOR FOR
SELECT TW.* FROM
(SELECT aaa, bbb, ccc, ddd, eee, ROWNUM AS LINENO FROM mmm
where bbb = :cCcd
and TO_CHAR(eee,'MM') = :cAssignMon
and eee >= TO_DATE(:cToday,'YYYY/MM/DD')
order by eee, aaa) TW
WHERE TW.LINENO >= :iRecordFm and TW.LINENO <= :iMax;
-----------------------------------------------------------

A 回答 (1件)

こんにちわ。



Oracle8 では、インラインビュー (FROM 句にあるTW を定義しているサブクエリ) 内では
order by は書けなかったはずです。
インラインビュー内でorder by が書けるようになったのは、Oracle8i からだっと筈です.
order by をインラインビューから出して再度確認してみて下さい。
今回の場合、order by はインラインビューの外でも問題ないようですし・・・。
    • good
    • 2
この回答へのお礼

こんにちわ。

どうも有り難うございます!!
見事、インラインビューの外に出したらコンパイルがとおりました。

SQL*PLUSでの実行で、ORDER BYを
インラインビューの中に入れたときと、出して書いたときの差分が無いことを確認でき、
大変感謝いたします!
長いこと悩んでいたので、助かりました!
どうも有り難うございました!!

お礼日時:2005/06/22 11:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A