raise函数

在PostgreSQL中,该函数用于打印字符串,类似于Java中的System.out.println(),Oracle中的dbms_output.put_line()。

在PostgreSQL中可以利用RAISE语句报告信息和抛出错误,其声明形式为:

RAISE level 'format' [, expression [, ...]];

1

RAISElevel'format'[,expression[,...]];

用法实例如下:

raise notice 'My name is %, I am a %.', 'glj', 'Handsome boy';

1

raisenotice'My name is %, I am a %.','glj','Handsome boy';

以上sql会在控制台输出My name is glj, I am a Handsome boy。

raise后面的notice是级别,一共有debug/log/info/notice/warning/exception这些级别,可以任意指定一个级别。有些类似于Java里的日志框架,比如Log4j2之类的。

接着级别后面的是要输出的信息(字符串类型),用一对单引号包括起来。这个字符串支持占位符的写法,也就是%这个字符。如果在字符串里使用了这个%,那么会自动使用字符串参数后面的参数来替换掉这里的%。有多少个占位符,就需要在第一个字符串参数后面加上多少个对应的参数。

演示raise的日常使用:

create or replace function raise_demo()

returns void as $body$

declare

param1 text:= 'glj';

param2 text:= 'Handsome boy';

begin

raise notice 'My name is %, I am a %.', param1, param2;

end;

$body$

LANGUAGE 'plpgsql' VOLATILE

COST 100;

1

2

3

4

5

6

7

8

9

10

11

12

createorreplacefunctionraise_demo()

returnsvoidas$body$

declare

param1text:='glj';

param2text:='Handsome boy';

begin

raisenotice'My name is %, I am a %.',param1,param2;

end;

$body$

LANGUAGE'plpgsql'VOLATILE

COST100;

在Navicat 查询窗口中执行select raise_demo();

将会在输出窗口的历史区域看到如下信息:

-- 执行查询: select raise_demo();

如果用navicat 在信息栏可看到

[SQL]select raise_demo()

NOTICE: My name is glj, I am a Handsome boy.

CONTEXT: PL/pgSQL function raise_demo() line 7 at RAISE

1

2

3

4

[SQL]selectraise_demo()

NOTICE:Mynameisglj,IamaHandsomeboy.

CONTEXT:PL/pgSQLfunctionraise_demo()line7atRAISE

最后一个带错误提示的例子:

CREATE OR REPLACE FUNCTION GETEXCEPTION(exception_t text)

RETURNS void AS

$$

BEGIN

IF exception_t = '修车' THEN

RAISE NOTICE '你的车出问题了。该去修修!';

ELSIF exception_t = '卖车' THEN

RAISE NOTICE '你的车都不用修了,去卖了吧!';

ELSE

RAISE NOTICE '啥问题也没!';

END IF;

EXCEPTION

WHEN others THEN

RAISE EXCEPTION '(%)', SQLERRM;

END

$$ LANGUAGE PLPGSQL;

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

CREATEORREPLACEFUNCTIONGETEXCEPTION(exception_ttext)

RETURNSvoidAS

$$

BEGIN

IFexception_t='修车'THEN

RAISENOTICE'你的车出问题了。该去修修!';

ELSIFexception_t='卖车'THEN

RAISENOTICE'你的车都不用修了,去卖了吧!';

ELSE

RAISENOTICE'啥问题也没!';

ENDIF;

EXCEPTION

WHENothersTHEN

RAISEEXCEPTION'(%)',SQLERRM;

END

$$LANGUAGEPLPGSQL;

oracle raise默认作用,postgreSQL之raise用法相关推荐

  1. python里raise是什么意思_python raise有什么用

    Python 允许程序自行引发异常,使用 raise 语句即可. 异常是一种很"主观"的说法,以下雨为例,假设大家约好明天去爬山郊游,如果第二天下雨了,这种情况会打破既定计划,就属 ...

  2. SQL全方位攻略:5. SQL “方言”大比拼:Oracle、MySQL、PostgreSQL限制检索行数语法详解(分页查询)

    系列文章目录 SQL全方位攻略:1.数据库介绍 SQL全方位攻略:2.SQL介绍 SQL全方位攻略:3.SQL标准 SQL全方位攻略:4. 标准SQL和SQL"方言" 文章目录 系 ...

  3. Oracle数据泵备份与恢复 命令 expdp/impdp 用法详解

    Oracle数据泵备份与恢复 命令 expdp/impdp 用法详解 关于expdp和impdp     使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户 ...

  4. oracle账户密码怎么写,oracle 10g默认用户名、密码解锁

    评论 # re: oracle 10g默认用户名.密码解锁 2007-06-13 14:01 老董 楼主很强啊!佩服---  回复  更多评论 # re: oracle 10g默认用户名.密码解锁 2 ...

  5. 1.oracle中的exists 和not exists 用法:

    1.oracle中的exists 和not exists 用法: exists (sql 返回结果集为真) not exists (sql 不返回结果集为真) 如下: 表A ID NAME 1 A1 ...

  6. oracle系统视图作用大全

    oracle系统视图作用大全 DBA学习第一步,了解system下各视图功能 -----------DBA---------------- DBA_2PC_NEIGHBORS 包含待处理事务进入连接和 ...

  7. oracle中的exists 和 not exists 用法详解

    from:http://blog.sina.com.cn/s/blog_601d1ce30100cyrb.html oracle中的exists 和 not exists 用法详解 (2009-05- ...

  8. 修改oracle数据库默认时间格式

    oracle数据库默认的时间格式只能精确到天(DD-MON-RR),在实际工作环境中,开发程序通常需要取得精确到秒的时间值,经查询资料在oracle中修改时间值的方式大致可以分为以下几种: 1.临时修 ...

  9. Oracle里default什么意思,ORACLE中默认值default的使用方法.doc

    ORACLE中默认值default的使用方法 在创建数据库表时,你可以指定一个 DEFAULT 值(即默认值).对数据库字段使用默认值有助于将数据库设计问题与应用程序代码隔离. 可以在以后某个时候通过 ...

最新文章

  1. 嵌入式 linux 进程锁,嵌入式  Linux线程锁详解pthread_mutexattr_t
  2. View是如何被添加到屏幕窗口上的
  3. Java的基础方法Java的对象_java基础之 创建对象的几种方式
  4. 算法导论之有关数论的算法
  5. c语言指着与数组,C语言指针与数组
  6. 【转】带你玩转Visual Studio——04.带你高效开发
  7. 医疗保健、零售、金融、制造业……一文带你看懂大数据对工业领域的影响!...
  8. 一文看尽科大讯飞年度发布会:医疗,是这家A股AI公司的新赛道
  9. linux源码Makefile详解(完整)-转
  10. Spring(16) 获得bean的id
  11. 什么软件可以在给多个视频添加马赛克同时批量裁剪画面呢?
  12. layer的iframe用法整理
  13. 南水北调工程简介及线路图
  14. Bloxorz POJ3322
  15. GitHub圣诞最火神器:“时光穿梭机”一键实现变老变年轻!
  16. 就在明天 用友企业数智化财务峰会落地广州,聚焦实现业财合一新价值
  17. Java-Excel报表开发POI(含POI保护工作表功能)
  18. 数据采集爬虫ip代理基本原理
  19. 计算机网络复习记录 (2)Chap 4
  20. python爬虫--小白爬取csdn页面题目与链接

热门文章

  1. HTML img 图像映射 map
  2. 利用html与css写出的购物网页
  3. curator 监听数据节点子节点的变化情况
  4. 社畜跑路、校招上岸、润
  5. 压力变送器差压变送器的正确安装方法
  6. 转:MySQL中MAX函数与Group By一起使用的注意事项
  7. Java生成plist下载ipa文件
  8. Ipad2给人们的惊喜
  9. request.getParameter()
  10. MinIO多用户权限管理