PGSQL记录

1.每句后面需要加 ;

2.获取时间

复制代码
当前时间 :  GETDATE()    now()   LOCALTIMESTAMP
提前几天时间:  now()::DATE -3+ now()::TIME
推迟几天时间:now()+1
获取第几周:   date_part('week',@Today)    day month
设定每周的第一天为周一  SET datestyle TO ISO, DMY;
convert(datetime, TmpJITSuppPart_UTime)不支持第三个参数

3.数据转换

复制代码
SELECT to_number(23,99);
SELECT to_char('12', '999');

4.调用存储过程

call add_Log(1,1,1,1);

5.声明变量且赋值 判断

复制代码
CREATE OR REPLACE PROCEDURE add_Log(
    @Param1 varchar(100), 
    @Param2 varchar(100), 
    @Param3 varchar(100), 
    @Param4 varchar(30)-- 操作用户ID  
)
AS 

DECLARE 
 @Today DATETIME:= LOCALTIMESTAMP;
 @CurrWeek varchar(50);
 @Type varchar(20);
 @Result varchar(20);
BEGIN 
   --直接赋值
    @CurrWeek := to_char(LOCALTIMESTAMP,'YYYY')+ '/' + 'WK' + to_char(date_part('week',@Today),'99');
    --查询赋值
    select Style into @Type
    from student;

   if 1=1
    then
        begin
            @Result := 'Normal';
        end;
    else
        begin
             @Result := 'Exception';
        end;    
    end if;
   RAISE NOTICE 'The value of my_variable is %', @Result;  --打印数据
    savepoint 1;
   ROLLBACK to savepoint 1;
   COMMIT;  --提交
--抛出异常
EXCEPTION
    WHEN others THEN    
    RAISE EXCEPTION '%', SQLERRM;  --抛出异常
    ROLLBACK;  --回滚
END; 

--查询PGSQL存储过程数量

复制代码
SELECT COUNT(*)
FROM pg_proc
WHERE prokind IN ('p') AND pronamespace = (SELECT oid FROM pg_namespace WHERE nspname = 'student');

---查询PGSQL数据库特定scema中存储过程内容中的字符串

复制代码
SELECT p.proname 
FROM pg_proc p
JOIN pg_namespace n ON p.pronamespace = n.oid
WHERE n.nspname NOT IN ('pg_catalog', 'information_schema')
AND p.prokind = 'p' 
AND pronamespace = (SELECT oid FROM pg_namespace WHERE nspname = 'wlms_br')
and p.prosrc like '%Add_Log%'

---设置按照mssql语法下执行存储过程脚本

复制代码
SELECT * FROM pg_settings where NAME='enable_set_variable_mssql_format'
SET enable_set_variable_mssql_format ON;

--连接到数据库

复制代码
		Environment bean = ToolSpring.getBean(Environment.class);
        String url = bean.getProperty("spring.datasource.url");
        String user = bean.getProperty("spring.datasource.username");
        String password = bean.getProperty("spring.datasource.password");
        Connection conn = DriverManager.getConnection(url, user, password);
        // 创建存储过程调用的语句
        String sql = "{perform ADD_Log(?,?,?,?)}";
        PreparedStatement stmt = conn.prepareStatement(sql);
        // 设置表值参数
        stmt.setArray(1, param1);
        stmt.setLong(2, param2);
        stmt.setString(3, param3);
        stmt.setString(4, param4);
        // 执行存储过程
        stmt.execute();
        // 关闭连接
        stmt.close();
        conn.close();
相关推荐
weixin_5112552125 分钟前
MySQL升级记录
数据库·mysql
程序猿乐锅1 小时前
【黑马点评 | 第八篇】Redisson分布式锁
java·数据库·spring boot·redis·分布式·spring·缓存
Leo.yuan2 小时前
2026年本地化Data Agent优质厂商盘点:哪些产品更适合企业生产环境
大数据·数据库·人工智能
做运维的阿瑞2 小时前
数据库增删改的安全写法
数据库·sql·mysql
程序边界2 小时前
迁移评估不再拍脑袋,这个数据迁移工具的量化报告把我救了(上)
数据库
阿狗童鞋3 小时前
Redis实战指南
数据库·redis·缓存
lupai4 小时前
维修保养记录精准版 API 对接实战指南
数据库·python
2601_952196367 小时前
计算机科学与技术专业应届生投商业分析岗,需要哪些额外能力?
数据库·oracle
皮皮学姐分享-ppx7 小时前
地级市、省级人才政策强度测算(2000-2025)
大数据·数据库·人工智能·百度·高考
晚安日记wanna7 小时前
大厂禁 JOIN 的真正原因,拆到第四层才清楚
数据库·后端·面试