gpt4 book ai didi

linux - 将 oracle 查询结果存储到 bash 变量中

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:14:31 24 4
gpt4 key购买 nike

declare -a result=`$ORACLE_HOME/bin/sqlplus -silent  $DBUSER/$DBPASSWORD@$DB << EOF $SQLPLUSOPTIONS $roam_query exit; EOF`

我正在尝试从 oracle 数据库中提取数据并填充 bash 变量。选择查询有效,但它返回多行,并且这些行作为一个长的连续字符串返回。我想在数组索引中捕获数据库中的每一行,例如:

index[0] = row 1 information
index[1] = row 2 information

请帮忙。所有建议表示赞赏。我没有运气就检查了所有文档。谢谢。我正在使用 solaris unix

最佳答案

如果您有 bash 版本 4,则可以使用 readarray -t 命令来执行此操作。任何最近的 linux 都应该有 bash v4,但我不知道 Solaris。

顺便说一句,我还建议在变量引用周围加上双引号(例如 "$DBUSER/$DBPASSWORD@$DB" 而不仅仅是 $DBUSER/$DBPASSWORD@$DB ) (这里的文档除外),使用 $( ) 而不是反引号,并使用小写或混合大小写的变量名(有一堆全大写的名称带有特殊意思,如果你不小心使用其中一个,就会发生奇怪的事情。

我不确定我的此处文档(SQL 命令)是否正确,但大致如下:

readarray -t result < <("$oracle_home/bin/sqlplus" -silent  "$dbuser/$dbpassword@$db" << EOF
$sqlplusoptions $roam_query
exit;
EOF
)

关于linux - 将 oracle 查询结果存储到 bash 变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55068957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com