Return value from sql script to shell script

前端 未结 2 1108
小蘑菇
小蘑菇 2020-12-06 07:16

I have shell script that calls the following sql script:

     INSERT INTO SEMANTIC.COUNT_STATISTICS (...);
     UPDATE SEMANTIC.COUNT_STATISTICS 
     SET PR         


        
相关标签:
2条回答
  • 2020-12-06 07:37

    A bash example with the use of a bash-function (note! database OS-authentication "/")

    #!/bin/bash
    
    get_count () {
        sqlplus -s / <<!
        set heading off
        set feedback off
        set pages 0
        select count(*) from all_objects where object_type = '$1'; 
    !
    }
    
    count=$(get_count $1)
    
    echo $count
    
    if [ "$count" -gt 0 ]; then
        echo "is greater than zero"
    else
        echo "is less or equal to zero"
    fi
    
    
    ~/tmp/ $ ./count.sh INDEX
    2922
    is greater than zero
    ~/tmp/ $ ./count.sh TABLE
    1911
    is greater than zero
    ~/tmp/ $ ./count.sh FUNCTION
    226
    is greater than zero
    ~/tmp/ $ ./count.sh "SUPEROBJECT"
    0
    is less or equal to zero
    
    0 讨论(0)
  • 2020-12-06 07:50

    What I actually did is I separated those 2 queires and called them separatelly in my shell script:

    sqlplus -S user/pass << EOF
    whenever sqlerror exit 1;
    set echo on
    @/opt/D2RQ/model_count.sql '$MODEL'  <--model_count.sql still has those INSERT & UPDATE statements
    exit;
    EOF
    
    model_count=`sqlplus -S user/pass << EOF
    SELECT PRNCT_CHANGE
     FROM COUNT_STATISTICS
    WHERE model = '$MODEL'
    AND NEW_DATE = (
                    select max(NEW_DATE)
                    from COUNT_STATISTICS
                    where MODEL = '$MODEL'
                   );
    exit;
    EOF`
    
    
    if [ $model_count >= 0 ]; then
        echo "$model_count"
    else
             echo "'$MODEL' is negative " | mail -s "scripts issues" -c angelina1984@aol.com
    fi
    
    0 讨论(0)
提交回复
热议问题