[pgsql-jp: 34221] Re: plpgsqlのバグ

HOTTA Michihide hotta @ net-newbie.com
2004年 10月 30日 (土) 16:54:13 JST


堀田@長崎市です。

On Sat, 30 Oct 2004 15:51:15 +0900 
Subject: [pgsql-jp: 34217] plpgsqlのバグ
"CM" <illuminate33 @ hotmail.com> wrote:

「plpgsql(自体)のバグ」じゃないですよね?
誤解を生むようなサブジェクトはやめましょう:-)

> $ vi 20041028sp.sql
> CREATE OR  REPLACE FUNCTION insert_dt_from_n ()
>  RETURNS opaque AS '
(略)
> ccallinoneu.reception_date=to_date(((NEW.reception_year+1988)*10000
> +(NEW.reception_month)*100+NEW.reception_day),
> 'yyyymmdd');
(略)
> LANGUAGE 'plpgsql';

(略)
> どうしても最後のyyyymmddのあたりでコンパイルエラーしてしまいま
> す。

素人考えですが、RETURNS opaque AS の次の "'" に対応する "'" が、
'yyyymmdd' の先頭の "'" になっちゃおかしいですよね?

http://search.net-newbie.com/pgsql/sql-syntax.html

> 4.1.2.1. 文字列定数

> SQLの文字列定数は任意の文字の並びを単一引用符("'")で囲ったも
> ので、'This is a string'のようになります。 SQLでは2つ連続した
> 単一引用符を入力することにより、単一引用符を文字列の中に埋め込
> むことができます(例:'Dianne''s horse')。 PostgreSQLでは、単
> 一引用符の代わりにバックスラッシュ("\")を使うこともできます。
>(例:'Dianne\'s horse') 

このへんを読んでみたら、うまくいったりしないですかね?
-- 
堀田 倫英 <hotta @ net-newbie.com> <http://www.net-newbie.com>
GPG fingerprint : 7C3F E633 CC38 C53E E61A  CF08 F8EF CA01 4ACB C9F5




pgsql-jp メーリングリストの案内