arrays - mapfile 无法将 sql 输出转换为数组变量
问题描述
我正在尝试从 oracle 表中获取 ID 列表并将其存储为数组变量。尝试使用 mapfile 填充变量效果不佳。从查询返回的 10 行被视为单行。参数-t
没有帮助。
我的计划是将此数组变量用于另一个数组(.txt 文件将作为其源)来交叉验证值的存在。
#!/bin/sh
temp_id_list=`sqlplus -silent ${o_schema_name}/${o_schema_pwd}@$o_db_name <<EOF
whenever sqlerror exit sql.sqlcode
SET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFF
SELECT DISTINCT memid FROM members WHERE ROWNUM < 11;
EXIT;
EOF`
mapfile -t id_list <<< ${temp_id_list}
echo "encoding details for a file : ${id_list[@]}"
echo "Number of elements in id_list: ${#id_list[@]}"
上面的输出是
values in array: 220000068 220000163 220000188 220000232 220000239 220000261 220000815 220000909 220000914 220001074
Number of elements array: 1
总而言之,从|
分隔文本文件中动态选择的一列需要与 Oracle 表中可用的等效源进行交叉验证。表和平面文件都可能有大量的行。因此,试图获得一个强大的解决方案。
提前致谢。
更新:将变量添加到双引号后它正在工作
mapfile -t id_list <<< "${temp_id_list}"
解决方案
推荐阅读
- angular - 检测路由更改和 url 条目的差异
- javascript - 如何通过一次提交将两个表字段发送到数据库?
- android - 如何允许 new View.OnClickListener() 在 android studio 中运行?
- angular - 如何在 Angular 12 中导入默认导出的 graphql 查询?
- asp.net - 如何在“主布局”中使用“用户面板布局”?
- javascript - 反应加密密码
- ios - 为什么子类化主 ViewController 的视图会导致委托永远不会触发?
- android - 如何在相机应用程序上显示文本而不记录它#Android #Camera API
- meson-build - 介子:连接两个没有'/'的字符串
- docker - 带有 docker 的烧瓶 reqparser.parse_args 传递省略号对象 - 错误