Postgresql使用PL/pgSQL语言建立存储过程

 时间:2024-10-14 16:35:23

1、我们殂翼瑟擀实现一个简单的存储过程p_user_check(p_username varchar, p_passwd varchar)验证传入的密码是否正确.传入参数为用户名p_username和用户密码p_passwd(数据库存储的应为加密过的密码),返回结果: 0 - 验证成功, -1 - 用户不存在 -2 - 密码错误 -99 - 程序异常

2、psql进入测试数据库,创建测试schema和测试表users(用户表,包含用户名,用户密码),插入一条数据。用户名: hehehehehe 密码:123 (仅测试用)

Postgresql使用PL/pgSQL语言建立存储过程

3、进入文本sublime_text,编写存储过程脚本。为保证脚本能多次运行而不影响数据库正常运行,如果在存储过程已存在的情况下先删除再建立。DROP FUNCTION IF EXISTS schema_a.user_check(varchar, varchar);

Postgresql使用PL/pgSQL语言建立存储过程

4、创建function语法官方说明见图

Postgresql使用PL/pgSQL语言建立存储过程

5、创建p_user_checkCREATE OR REPLACE FUNCTION schema_a.user忧溲枷茫_check(p_username varchar, p_password varchar)RETURNS int AS $$ -- $$需要后最后$$配对,可以任意取名,如$BODY$DECLARE -- 变量申明 _passwd varchar; _out_code int := -99; -- 申明时可赋初始值BEGIN -- 开始 SELECT password INTO _passwd FROM schema_a.users WHERE name = p_username; if found then if _passwd = p_password then _out_code := 0; else _out_code := -2; end if; else _out_code := -1; -- user not exists end if; return _out_code;EXCEPTION WHEN OTHERS THEN --异常处理 raise notice 'exception in user_check: %, %', SQLSTATE, SQLERRM; return _out_code;END; --结束$$LANGUAGE plpgsql STABLE SECURITY DEFINER;保存为/home/kian.gao/Desktop/user_check.sql在psql中执行脚本\i /home/kian.gao/Desktop/user_check.sql

Postgresql使用PL/pgSQL语言建立存储过程

6、验证存储过程正确性

Postgresql使用PL/pgSQL语言建立存储过程
  • 如何使用plsql连接oracle12c并创建同义词
  • VBA中的内置函数的使用教程
  • windows下ora-12560的解决方法
  • 台式电脑如何启用ActiveX Installer (AxInstSV)
  • js如何判断ie浏览器
  • 热门搜索
    重阳节手抄报简单 国庆小报手抄报 庆祝国庆手抄报 元旦手抄报的内容 关于国庆节的英语手抄报 传统美德手抄报 共创文明城市手抄报 开学手抄报简单又好画 法律伴我行手抄报 弟子规手抄报图片