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();
相关推荐
Elastic 中国社区官方博客几秒前
使用 ES|QL 变量控件将仪表板转变为调查工具
大数据·运维·服务器·数据库·elasticsearch·搜索引擎·全文检索
feng68_3 分钟前
Ansible还原数据库节点
linux·运维·数据库·ansible
乐hh7 分钟前
清理MySQL数据
数据库·mysql
EasyCVR10 分钟前
国标GB28181/RTSP/ONVIF/RTMP视频监控平台EasyCVR视频质量诊断花屏/蓝屏/画面模糊/冻结检测
网络·数据库·音视频
C^h13 分钟前
RTthread中的内存池理解
linux·数据库·c++·算法·嵌入式
fobwebs15 分钟前
wordpress 网站安装了Yoast SEO,并且做了内容的优化后,如果想重置Yoast SEO,并且删除所有的优化内容,应该如何操作?
数据库·yoast seo·重置yoast seo·清空yoast seo内容
路由侠内网穿透32 分钟前
本地部署开源 LLM 应用观测与调试平台 Langfuse 并实现外部访问
运维·服务器·数据库·物联网·开源
SPC的存折32 分钟前
1、Ansible之Ansible安装与入门
linux·数据库·ansible
qiumingxun37 分钟前
mysql的分区表
数据库·mysql
sxhcwgcy38 分钟前
Spring Boot中集成MyBatis操作数据库详细教程
数据库·spring boot·mybatis