【问题标题】:How to return just the value with sql inside shell script?如何在 shell 脚本中只返回 sql 的值?
【发布时间】:2013-06-28 12:56:01
【问题描述】:

下面的代码正在返回:

电子邮件---------------------------------------------- ---------------------------------- email@email.com

案例“$type”在

                2)
                echo "Type is outbound: $type"
                        contact=$(sqlplus -s ${SQLPLUS_INFO} <<EOF
                        SELECT email FROM table WHERE email = 'x';
                        exit
                        EOF)
                        echo
                        echo $contact
                        echo
                ;;

                1)
                echo "Type is inbound: $type"
                ;;
        esac

但我只是想:

电子邮件---------------------------------------------- ---------------------------------- email@email.com

有什么帮助吗?

【问题讨论】:

  • 你想要的和你得到的都是一样的。你有什么问题?

标签: shell sqlplus


【解决方案1】:

sqlplus 命令set pagesize 0 关闭列标题和其他分页内容。

case "$type" in
    2)  echo "Type is outbound: $type"
        contact=$(sqlplus -s ${SQLPLUS_INFO} <<EOF
            set pagesize 0
            SELECT email FROM table WHERE email = 'x';
            exit
EOF
        )
        printf "\n%s\n\n" "$contact"
    ;;

此页面是一个有用的参考:http://ss64.com/ora/syntax.html

【讨论】:

  • 成功了,谢谢!也感谢提供的参考!会检查的!
【解决方案2】:

问题是你把 ) 放在 EOF 语句之后。

EOF 应该总是一个人来!

通过将 ) 放在新行上来修复您的脚本。

...
exit
EOF
)
echo
...

【讨论】:

  • @LeandroToshioTakeda,还要确保“EOF”之前或之后没有空格
  • 也没有工作@glenn jackman,我也尝试删除标签,结果相同:EMAIL ---------- -------------------------------------------------- -------- email@email.com EMAIL 是表列名,不确定是多少 ---,email@email.com 是表中的值,我想要的那个。
猜你喜欢
  • 2013-07-16
  • 1970-01-01
  • 1970-01-01
  • 2016-10-18
  • 2017-07-11
  • 2021-02-23
  • 2013-12-11
  • 2014-02-07
  • 2016-03-14
相关资源
最近更新 更多