Обсуждение: storing special characters

Поиск
Список
Период
Сортировка

storing special characters

От
BORGULYA Gergely
Дата:
Helo,

I'm using postgresql 7.1, with suse linux 7.1 on i386.
I'm programming in python and I'm going to store many, long (approx. 600 
bytes) python-variables in a postgres database. There is a way to convert 
python-variables into string (either binary or text) format to make them 
possible to be stored in files or databases. The string converted from the 
variable is full of characters that are treated specially by the 
query-language, so I always get error messages if I try them to store with 
the INSERT INTO command.
To save them to files, COPY them one-by-one to a temporary table then move 
them to the appropriate table and row, delete the file, drop the table seems 
to be a very long procedure.
Is there a simple and smart way to store such strings in databases? I could 
not find solution for such a problem in the documentation.

Gergely BORGULYA



Re: storing special characters

От
"Hugh Mandeville"
Дата:
> I'm using postgresql 7.1, with suse linux 7.1 on i386.
> I'm programming in python and I'm going to store many, long (approx. 600
> bytes) python-variables in a postgres database. There is a way to convert
> python-variables into string (either binary or text) format to make them
> possible to be stored in files or databases.

if the python-variable strings contain just printable characters (ASCII 32 -
126) you should only need to escape out the single quote (') and blackslash
(\) characters for postgresql.
replace ' with '' and \ with \\.  i don't know about Python but Perl DBI has
a function called quote() used to correctly quote and escape SQL statements.   my $quotedString = $dbh->quote( $string
);

if the python-variable strings contain other special characters you can
escape those characters to slash followed by their 3 digit ASCII octal value
(decimal 10 = \n = \012).
   INSERT INTO foo (varname) VALUES ('var''s name\\!@#$%^&*()_\n\012');

see http://www.postgresql.org/idocs/index.php?sql-syntax.html