0

次の入力で失敗する多言語のDjango/Postgresベースのアプリがあります(サニタイズされています):

STATEMENT:  INSERT INTO "main_model" ("a_id", "b", "c", "d", "text", "f", "g", "h")
  VALUES (1, 2, 'c', 'd', '...nahlá<U+009A>ení ... nahla<U+009A>ování...', 'f', 'g', 'h')
  RETURNING "main_model"."id"
ERROR:  current transaction is aborted, commands ignored until end of transaction block

文字列はUnicodeであり、textpostgresがそれを窒息させているように見えます。これは一例ですが、これは他のいくつかの言語でも発生しています。

このステートメントの正確なエラーが何であるかを理解するためのより良い方法はありますか?

DBにスローする前にUnicode文字列に対して行う必要のあるサニテーションはありますか?

4

1 に答える 1

0

https://stackoverflow.com/a/10437521/24545に出くわしました

この問題から学んだ教訓は、キャッチされて処理されないエラーがないことを確認することです。

私の場合、実際のエラーを隠していたtry /exceptブロックがあり、次にそれが発生したのはpostgresのトランザクションエラーでした。

于 2012-06-12T14:46:14.173 に答える