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();
相关推荐
软件派2 小时前
生产动态数据智能风控:阈值判别、趋势预测、异常识别算法工程落地实战
前端·数据库·算法
ss2739 小时前
PostgreSQL常见索引问题与解决方案
数据库·postgresql
小徐不徐说10 小时前
序列化与反序列化:把 C++ 对象可靠地保存下来
开发语言·数据库·c++·php
瀚高PG实验室11 小时前
发布端逻辑复制槽消失
数据库·postgresql·瀚高数据库
ss27311 小时前
PostgreSQL慢查询定位与优化
数据库·postgresql
香蕉大香蕉(06敬畏市场)12 小时前
MySQL 单点详解(07)
java·数据库·mysql·ai·博客·八股
smilejingwei13 小时前
TRAE 插件上新 | SQLazy:让 AI 写出可信复杂 SQL
数据库·人工智能·sql
我要见SA姐113 小时前
GitHub Actions 自动化:5 个真实运维提效案例
运维·数据库·机器学习·oracle·回归
QXWZ_IA14 小时前
边坡监测预算有限时的建设顺序:虚拟基准站与成本账
网络·数据库
这个DBA有点耶15 小时前
1亿条向量内存降95.4%,延迟降80%:金仓AI原生内核真能解决RAG痛点?
数据库·人工智能·开源