将sql数据存储在嵌套if中的变量中

时间:2011-05-17 06:25:14

标签: sql oracle unix

我必须使用嵌套的if / then / else语句来检查从oracle db获得的查询。 我是unix的新手。从搜索谷歌,我了解将SQL数据存储到变量的过程。但是当我必须使用嵌套的if语句时,我该怎么做?

我无法一次又一次地连接到数据库以将数据存储到变量中。有人可以帮忙吗?

我在这里写的是代码。请原谅错误的语法。我来自php的编码

    LOGFILE = #enter path here

fetchdate = `sqlplus -s prmappo/prmappo@PRMDB << EOFSQL
select min(call_start_datetime) from error_repository;
exit;
EOFSQL`
if (( "${fetchdate:4:2}" == "02" ));
    then
    $query_1 = select * from error_repository_BKP partition(part_maxval);
    if (($query_1 == NULL));
    then
        $query_2 = "alter table error_repository_BKP
                        exchange partition part_maxval
                        with table error_repository
                        without validation;" >> $LOGFILE
    commit; 
    fi

  $query_3 = "select * from error_repository;"

另外,请告诉我如何读取存储在变量中的SQL行数据?

1 个答案:

答案 0 :(得分:0)

如果要使用sqlplus进行脚本编写,最简单的方法是将数据以某种单独的格式假脱机到文件并解释该文件的输出。您可以从假脱机文件的字段中分配变量。

除非您正在操作OS对象,否则在pl / sql中完全编码可能更为明智。在这种情况下,您可以完全控制并且完全没有任务问题。如果您只是在操作Oracle对象,请尝试pl / sql。这是一种功能强大的编程语言。这样做还可以防止大量额外的数据库连接。如果使用11g,则还可以使用远程作业代理来操作OS对象。

使用sqldeveloper从这里编码和调试code.download:Oracle SQL Developer