You are not logged in. This forum allows only logged in users to post. If you want to post in the forum, please log in.
다운로드
소프트웨어 개발
계정
다운로드
소프트웨어 개발
Login
Forgot Account/Password
계정 만들기
언어
도움
언어
도움
×
Login
Login Name
Password
×
Forgot Account/Password
Translation Status of 한국말
Category:
Software
People
PersonalForge
Magazine
Wiki
검색
OSDN
>
브라 우즈 소프트웨어
>
Database
>
Database Engines/Servers
>
OpenOLAP
>
포럼
>
도움
>
使用できない文字列、を使うために
OpenOLAP
Description
Project Summary
Developer Dashboard
웹 페이지
Developers
Image Gallery
List of RSS Feeds
Activity
Statistics
History
다운로드
List of Releases
Stats
티켓
Ticket List
Milestone List
Type List
Component List
List of frequently used tickets/RSS
Submit New Ticket
Documents
Communication
포럼
List of Forums
도움 (338)
Open Discussion (13)
Mailing Lists
list of ML
News
포럼:
도움
(Thread #8240)
Return to Thread list
RSS
使用できない文字列、を使うために (2005-07-22 18:21 by
sohmura
#15437)
Create ticket
OpenOLAPModelDesignerマニュアル.pdfの中の 1.4.3 使用できない文字列 において、
「各オブジェクトの名称やコメントなどに以下の文字列を含まないように」
との記述があります。
しかし、オブジェクト名称などとして使用できないだけでなく、キューブデータの中身に
これらの文字が存在する場合も影響を受けます。
例として、サンプルデータの中のproductを使い、long_nameの一つを「'」を含む名称に
更新します(Envoy スタンダード > Envoy'sスタンダード)
この状態でキューブを作成すると、以下のようなエラーが発生します。
15:02:21 [16/43] ディメンションメンバーの更新(1) 製品 処理開始...
15:02:22 [16/43] ディメンションメンバーの更新(1) 製品 処理にてエラー発生
java.sql.SQLException: ERROR: syntax error at or near "sスタンダード"
15:02:22 キューブ情報登録 処理開始...
15:02:23 処理終了
全処理終了
製品の名称などを登録する際、使えない文字があるのは非常に不便です。
この障害はPostgreSQLの関数の定義を変更することで対処可能であることがわかりました。
上記の例の場合はディメンジョンのメンバーの定義の中でエラーとなっていますから、
関数oo_dim_memberが対象になります。
for recCnt in execute vCountSQL loopの中
vInsertSQL:= vInsertSQL|| ',' || quote_literal(hieT.long_name) || vRt;
vUpdateSQL:= vUpdateSQL|| ',long_name =' || quote_literal(hieT.long_name) || vRt;
なお変更作業にはpgAdminIIIを使いました。
キューブの作成が完了すれば、ReportDesignerでは手を加えることなく
そのままキューブを参照することができました。
RE: 使用できない文字列、を使うために (2009-12-14 10:41 by
yajimama
#47432)
Create ticket
関数oo_dim_memberの変更について、2点、確認させて下さい。
現在使用しているバージョンはv2.1.0です。
【1.関数の変更内容について】
関数の具体的な修正について質問です。
下記の変更ですと、['']の分が合わなくて、混乱しています。
>for recCnt in execute vCountSQL loopの中
変更前
vInsertSQL:= vInsertSQL|| ',''' || hieT.long_name|| '''' || vRt;
↓
変更後
>vInsertSQL:= vInsertSQL|| ',' || quote_literal(hieT.long_name) || vRt;
あるいは、下記のように、[hieT.long_name]を[quote_literal(hieT.long_name)]に変更すればよろしいのでしょうか。
変更前
vInsertSQL:= vInsertSQL|| ',''' || hieT.long_name|| '''' || vRt;
↓
変更後
vInsertSQL:= vInsertSQL|| ',''' || quote_literal(hieT.long_name)|| '''' || vRt;
同様に、vUpdateSQLの変更についても混乱しております。
>vUpdateSQL:= vUpdateSQL|| ',long_name =' || quote_literal(hieT.long_name) || vRt;
これは、バージョンの違いによる影響なのでしょうか。
【2.pgAdminIIIでの変更方法について】
>なお変更作業にはpgAdminIIIを使いました。
pgAdminIIIを使って、関数oo_dim_memberを変更するとのことですが、関数oo_dim_memberはどのような修正を施しても、「適用」あるいは「OK」を選択すると、下記のエラーメッセージが出ます。
ERROR;relation "oo_dim_0_0"does not exist
CONTEXT:compile of PL/gpSQL function "oo_dim_member" near line 19
どこか他にも修正が必要な箇所や設定があるのでしょうか。
以上の2点です。
分かり難い説明で申し訳ありませんが、宜しくお願い致します。
Reply to
#15437