? ? ? ? 在数据库中新建用来学习的数据库mydb,并在mydb数据库中新增mysc,即my database和my schema的缩写,接下来的示例脚本将在mydb数据库下的mysc模式下创建。脚本如下,
-- 1.创建自己的数据库
CREATE DATABASE mydb
WITH
OWNER = postgres
ENCODING = 'UTF8'
LC_COLLATE = 'C'
LC_CTYPE = 'C'
TABLESPACE = pg_default
CONNECTION LIMIT = -1;
-- 添加备注
COMMENT ON DATABASE mydb
IS 'my administrative connection database';
-- 2.创建自己的schema
CREATE SCHEMA mysc
AUTHORIZATION postgres;
-- 添加备注
COMMENT ON SCHEMA mysc
IS 'my schema';
-- 授权
GRANT ALL ON SCHEMA mysc TO postgres;
? ? ? ? pl/sql语法比较灵活,但在创建函数时还是要尽量符合语言约定的规范写法,比如参数名称使用可读性较好的写法(驼峰式、短横线式等写法),在示例脚本中尽量使用符合约定的写法。
创建一个实现两数相加的自定义函数,具体脚本如下,
p_a:计算参数1
p_b:计算参数2
p_sum:返回结果变量
-------------------
CREATE OR REPLACE FUNCTION mydb.mysc.add(IN p_a integer,IN p_b integer,OUT p_sum integer)
AS
$BODY$
BEGIN
p_sum:= p_a + p_b; -- 进行加法运算,并将计算结果赋值给输出的参数p_sum
END;
$BODY$
LANGUAGE 'plpgsql' -- 指定函数的程序语言
VOLATILE -- 优化器不进行优化
RETURNS NULL ON NULL INPUT; -- 当传入参数含有null时返回null
调用定义的加法函数输出结果为:
在加法计算函数的基础上进行扩展,实现加减乘除运算的函数,脚本如下,
p_a:计算参数1
p_b:计算参数2
p_operate:要进行的加减乘除操作
p_result:返回结果变量
-------------------
CREATE OR REPLACE FUNCTION mydb.mysc.calc(IN p_a integer,IN p_b integer,IN p_operate char,OUT p_result decimal(16,2))
AS
$BODY$
declare tmp_sql varchar(100); -- 定义变量
BEGIN
tmp_sql:= 'select ('||p_a||'*1.0)'|| p_operate ||'('||p_b||'*1.0)'; -- 拼接要执行的函数
execute tmp_sql into p_result; -- 将查询结果赋值给p_result
END;
$BODY$
LANGUAGE 'plpgsql' -- 指定函数的程序语言
VOLATILE -- 优化器不进行优化
RETURNS NULL ON NULL INPUT; -- 当传入参数含有null时返回null
调用函数两数相加:
调用函数两数相减:
调用函数两数相乘:
调用函数两数相除:
注入获取 注入获取通过IConfiguration直接获取的方法官方文档里就有,可以直接看...
1.如果你连追求自己喜欢的事物与人的勇气都没有,你注定是个失败者。 2.不要因...
HTML常用meta 文章目录 HTML常用meta Meta(元数据) 提示以下是本篇文章正文内容...
分析可能是: asp的一些保留字段导致,具体的大家可以参考这篇文章: ASP常见的...
了解类似的获取字符位置的方法: charAt() 获取字符串指定位置的字符 用法:strO...
前言 最近在阅读某开源框架源码的时候,发现作者在其中运用了很多 Action委托 和...
非ES6代码实现继承的主流方式主要可以分为: 构造继承、原型链继承、构造继承+原...
伪静态:即网站本身是动态网页如.php、.asp、.aspx等格式,而这类网页还带“”加...
问题 如果打算为项目选择一款免费、开源的 数据库 ,那么你可能会在 MySQL 与Pos...
分享背景 由于一直在虚拟机的状态下开发PHP,尝试一下mac本地搭建环境.mac本身是...