ruby-on-rails - 使用模式中的数组复制到 postgres?
问题描述
我正在使用 Ruby/Rails/Postgres,我的表看起来像(Schema wise):
CREATE TABLE my_table_name(
my_num double precision NOT NULL,
my_string_arr character varying[] NOT NULL, # this is an array
my_int_arr integer[] NOT NULL, # this is an array
)
在 Ruby 中,我试图copy
像这样进入这个表:
raw = connection.raw_connection
raw.transaction do
copy_cmd = <<~SQL
COPY my_table_name (
myNum,my_string_arr,my_int_arr
)
FROM STDIN
SQL
encoder = PG::TextEncoder::CopyRow.new
copy_result = raw.copy_data(copy_cmd, encoder) do
rows.each do |row|
raw.put_copy_data(row)
end
end
现在,rows
看起来像(总共只有 1 行):
[
[
1.15,
["abcde"],
[1234]
]
]
我得到的错误是:
PG::InvalidTextRepresentation: ERROR: malformed array literal: "["abcde"]"
DETAIL: "[" must introduce explicitly-specified array dimensions.
CONTEXT: COPY my_table_name, line 1, column keywords: "["abcde"]"
我不确定如何解决这个问题,这是我第一次像这样使用 PSQL。关于如何使数组物有所值的任何建议?
解决方案
推荐阅读
- python - 我正在尝试在循环中使用 pyautogui 向我朋友的 dm 发送垃圾邮件(不要问为什么)
- typescript - 打字稿中的通用“设置属性”功能
- node.js - 如何确保一个 npm 依赖项不需要更高的节点版本?
- reactjs - 如何指定特定的 jsx 元素返回类型?
- wordpress - 如何将注册用户与我的 wordpress 网站上的影响者推荐链接相关联?
- android - 如何让 AdMob 和 LibGdx 游戏视图在 Android 上运行
- html - 在一行中拼接文本 (HTML/CSS)
- java - CEW 73 Veracode - 如何使用 getQueryString HttpServletRequest(java) 方法修复文件名或路径的 CWE 73 外部控制类型的缺陷
- airflow - 气流 | DAG 是如何开始的
- reactjs - 如何使用 React 路由器根据路由名称动态渲染组件