如何在shell脚本中使用sql返回值?

时间:2013-06-28 12:56:01

标签: shell sqlplus

以下代码正在返回:

EMAIL ---------------------------------------------- ---------------------------------- 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@email.com

请帮忙吗?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

在EOF声明之后出现问题。

EOF应该永远独自一人!

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

...
exit
EOF
)
echo
...