【问题标题】:Saving a Unicode Text with "\n" to Oracle DB via Python SQLAlchemy cx_Oracle通过 Python SQLAlchemy cx_Oracle 将带有“\n”的 Unicode 文本保存到 Oracle DB
【发布时间】:2013-11-08 19:22:53
【问题描述】:

我正在使用 Python SQLAlchemy cx_Oracle。我正在存储这样的字符串

"1 Some Road\nSome Place\nSome City"

进入一个 db.Text 字段。但是保存到它之后,我得到的是:

 "1 Some RoadSome PlaceSome City"

那么,你知道谁吃了我的“\n”吗?请帮帮我

这是我在 Python 中定义模型的方式:

class Object(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    address = db.Column(db.Text(100))

我是这样保存的:

o = Object(address=""1 Some Road\nSome Place\nSome City")
db.session.add(o)
db.session.commit()

之后,当我得到它时,o.address 是:

 "1 Some RoadSome PlaceSome City"

干杯

【问题讨论】:

  • 这可能是它在您的客户端中的表示方式,但不一定是它在数据库中的存储方式...
  • 我在字段上使用 SQLdeveloper 进行了检查。我也找不到“\n”。

标签: python oracle unicode sqlalchemy


【解决方案1】:

尝试像这样插入你的字符串:

insert into table_name (column_name) values ('1 Some Road' || chr(10) || 'Some Place' || chr(10) || 'Some City');

chr(10) 表示 ASCII 表中编号为 10 的字符 - '新行'

【讨论】:

  • 您的回答令人鼓舞。我将尝试用 unicode U+000A LINE FEED (\n) 替换 '\n'。让你知道
  • 当我输入“1 Some RoadU+000ASome PlaceU+000ASome City”时,它在 Python 中不起作用。
  • @chfw 找到了解决方案?
  • @zengr 不,但我解决了这个问题。我在插入前翻译了“\n”,在检索后将其反转。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-11
  • 1970-01-01
  • 1970-01-01
  • 2020-04-08
  • 2019-06-30
  • 2010-09-19
  • 2018-07-21
相关资源
最近更新 更多