PostgreSQL式でのWindowsパスの指定

PostgresのSQLダイアレクトには多くの式が存在せず、ファイルシステムパスを引数として必要とします。 すぐにカップルに名前を付けることができます:


したがって、質問の要点は、これらの引数が文字列定数で表されることです。 そして、これは、言い換えると、語彙検証の欠如を意味し、異なるオペレーティングシステムで異なる効果をもたらします。 ツリーに思考を広めないために:

Windowsユーザー! システムパスを示すパラメータで、通常のスラッシュ(実際にはバックスラッシュ)をこれらのスラッシュ「/」に置き換えてください!


いいえ:
CREATE TABLESPACE dbspace
LOCATION 'C:\Program Files\PostgreSQL\8.3\data\dbs' ;


CREATE TABLESPACE dbspace
LOCATION E'C:\Program Files\PostgreSQL\8.3\data\dbs' ;


* This source code was highlighted with Source Code Highlighter .


はい:

CREATE TABLESPACE dbspace
LOCATION 'C:/Program Files/PostgreSQL/8.3/data/dbs' ;


CREATE TABLESPACE dbspace
LOCATION 'C:\\Program Files\\PostgreSQL\\8.3\\data\\dbs' ;
-- !


CREATE TABLESPACE dbspace
LOCATION E'C:\\Program Files\\PostgreSQL\\8.3\\data\\dbs' ;


* This source code was highlighted with Source Code Highlighter .


PS:私は絶対パスが好きではないので、「 CREATE FUNCTIONに dynamic_library_pathマジックがあるのはなぜですか。CREATETABLESPACEには似たようなものはありません(怪しげな実行時パラメーターも)?」

Source: https://habr.com/ru/post/J76554/


All Articles