当前位置:首页 > GreenPlum使用手册
LOOP 定义一个无条件的循环,无限循环, 直到由EXIT或者RETURN语句终止。 可选的 label 可以由 EXIT 和 CONTINUE 语句使用, 用于在嵌套循环中声明应该应用于哪一层循环。 2)EXIT
EXIT [label] [ WHEN expression];
如果没有给出 label, 那么退出最内层的循环,然后执行跟在 END LOOP 后面的语句。 如果给出 label, 那么它必须是当前或者更高层的嵌套循环块或者语句块的标签。 然后该命名块或者循环就会终止,而控制落到对应循环/块的 END 语句后面的语句上。
如果声明了WHEN,循环退出只有在 expression 为真的时候才发生, 否则控制会落到 EXIT 后面的语句上。
EXIT 可以用于在所有的循环类型中,它并不仅仅限制于在无条件循环中使用。 在和 BEGIN 块一起使用的时候,EXIT 把控制交给块结束后的下一个语句。 例如:
Loop 循环
If … then 条件判断
Exit ; 条件成立,则退出循环。 End if; End loop; 3)CONTINUE
CONTINUE [label] [ WHEN expression];
如果没有给出 label,那么就开始最内层的循环的下一次执行。 也就是说,控制传递回给循环控制表达式(如果有),然后重新计算循环体。 如果出现了 label,它声明即将继续执行的循环的标签。
如果声明了 WHEN,那么循环的下一次执行只有在 expression 为真的情况下才进行。否则,控制传递给 CONTINUE 后面的语句。
CONTINUE 可以用于所有类型的循环; 它并不仅仅限于无条件循环。 例如:
LOOP 一些计算
EXIT WHEN count > 100;
CONTINUE WHEN count < 50;
一些在count 数值在 [50 .. 100] 里面时候的计算 END LOOP;
4)WHILE
[<
WHILE expression LOOP statements
END LOOP [label];
只要条件表达式为真,WHILE语句就会不停在一系列语句上进行循环. 条件是在每次进入循环体的时候检查的. 例如:
WHILE amount_owed > 0 AND gift_certificate_balance > 0 LOOP -- 可以在这里做些计算 END LOOP;
WHILE NOT BOOLEAN_expression LOOP -- 可以在这里做些计算 END LOOP;
5)FOR (整数变种)
[<
FOR name IN [ REVERSE ] expression .. expression LOOP statements
END LOOP [labal];
这种形式的FOR对一定范围的整数数值进行迭代的循环。 变量name 会自动定义为integer类型并且只在循环里存在。 给出范围上下界的两个表达式在进入循环的时候计算一次。 迭代步进值总是为 1,但如果声明了REVERSE就是 -1。 一些整数FOR循环的例子∶
FOR i IN 1..10 LOOP 表示1循环到10 这里可以放一些表达式 RAISE NOTICE 'i IS %', i; END LOOP;
FOR i IN REVERSE 10..1 LOOP 这里可以放一些表达式
END LOOP;
如果下界大于上界(或者是在 REVERSE 情况下是小于),那么循环体将完全不被执行。 而且不会抛出任何错误。
3、异常捕获 EXCEPTION
WHEN 错误码(如:STRING_DATA_RIGHT_TRUNCATION:字串数据右边被截断) THEN
/**后台打印错误信息*/ RAISE NOTICE '错吴信息';
4 维护数据库
4.1 数据库启动gpstart
常用参数: -a : 直接启动,不提示终端用户输入确认 -m:只启动master 实例,主要在故障处理时使用 这是4个节点的集群正常启动的截图:
[gpadmin@v-centos62-64-65 ~]$ gpstart -a 20121025:13:33:12:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:-Starting gpstart with args: -a 20121025:13:33:12:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:-Gathering information and validating the environment... 20121025:13:33:13:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:-Greenplum Binary Version: 'postgres (Greenplum Database) 4.2.1.0 build 3' 20121025:13:33:13:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:-Greenplum Catalog Version: '201109210' 20121025:13:33:13:006244
gpstart:v-centos62-64-65:gpadmin-[WARNING]:-postmaster.pid file exists on Master, checking if recovery startup required 20121025:13:33:13:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:-Commencing recovery startup checks
20121025:13:33:13:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:-No socket connection or lock file in /tmp found for port=5432
20121025:13:33:13:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:-No Master instance process, entering recovery startup mode 20121025:13:33:13:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:-Clearing Master instance pid file 20121025:13:33:13:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:-Starting Master instance in admin mode 20121025:13:33:18:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:-Obtaining Greenplum Master catalog information 20121025:13:33:18:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:-Obtaining Segment details from master...
20121025:13:33:19:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:-Setting new master era
20121025:13:33:19:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:-Commencing forced instance shutdown 20121025:13:33:21:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:-Starting Master instance in admin mode 20121025:13:33:22:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:-Obtaining Greenplum Master catalog information 20121025:13:33:22:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:-Obtaining Segment details from master...
20121025:13:33:22:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:-Setting new master era
20121025:13:33:22:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:-Master Started...
20121025:13:33:23:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:-Shutting down master
20121025:13:33:24:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:-Starting standby master
20121025:13:33:24:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:-Checking if standby master is running on host: v-centos62-64-66 in directory: /u01/gpadmin/gpmaster/gpseg-1
20121025:13:33:24:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:-No db instance process, entering recovery startup mode 20121025:13:33:38:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:-Commencing parallel primary and mirror segment instance startup, please wait... ...........
20121025:13:33:49:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:-Process results...
20121025:13:33:49:006244
gpstart:v-centos62-64-65:gpadmin-[INFO]:-----------------------------------------------------
20121025:13:33:49:006244 gpstart:v-centos62-64-65:gpadmin-[INFO]:- Successful
共分享92篇相关文档