- 博客(23)
- 资源 (1)
- 收藏
- 关注
原创 python守护线程
守护线程需要等到非守护线程都死了才会死from threading import Threadfrom multiprocessing import Processimport timedef foo(): print(123) time.sleep(1) print('end123')def bar(): print(456) time.sleep(3) print('end456')if __name__ == '__main__': t1 = Thread(target=fo
2022-04-10 15:01:13
596
原创 postgresql 执行存储过程发生异常或意外时如何处理
——问题在oracle中存储过程可随时commit,但是postgresql中不能随时commit,无法控制执行存储过程,如果发生意外事故或是异常情况,中断了存储过程,则在postgresql中会全部回滚——解决在数据量大情况下,循环游标控制数量,每次循环3000条数据,commit;至少保证了每循环一次有3000条数据入库,而不是全部回滚;do $$declare --count_num integer; cur_point refcursor; count_num
2020-09-30 15:28:11
3845
原创 linux下安装python3.7.3模块psycopg2
无法连接外网,不能使用yum,pip等安装的postgresql版本是12.2下载psycopg2-2.8.6.tar.gz和postgresql12-devel-12.2-2PGDG.rhel6.x86_64.rpm安装依赖库:[root@zhyx15233 python3]# rpm -ivh postgresql12-devel-12.2-2PGDG.rhel6.x86_64.rpm --nodeps --force解压psycopg2-2.8.6.tar.gz及安装[root@zhyx
2020-09-25 11:11:01
1334
原创 postgresql中根据唯一索引实现更新或新增
postgresql提供的方法:ON CONFLICT DO UPDATE保证一个原子的 INSERT或者 UPDATE结果。在没有无关错误的前提下,这两种 结果之一可以得到保证,即使在很高的并发度也能保证。这也可以被称作UPSERT — “UPDATE 或 INSERT”。但是这个方法和oracle中merge into 的方法差异较大,只能单条数据更新或新增,且需要建主键,一般情况下入库的表不建议建主键,故用do$$代码块实现更新或新增的需要do$$ declare
2020-09-17 18:14:38
1170
原创 在shell脚本中调用postgres pl/pgsql代码块
直接在shell脚本中调用,穿插调用存储过程,正常sql及do$$代码块echo "BEGINNING OF $0 `date +'%Y-%m-%d %H:%M:%S'`"echo "plpgsql running"psql -h ${POSTGIS_IP} -U ${PGUSER} -d ${POSTGIS_DB_NAME} <<EOFCALL public.pp();CALL public.cc();update aa set bb=1;do \$$ declare
2020-09-16 18:33:11
2424
1
原创 postgresql12.2安装pldbgapi插件
调试需要安装插件下载pldebugger安装包: 1、安装git$ yum install git2、进入数据库安装目录/app/software/postgre/postgresql-12.2/contrib$ git clone git://git.postgresql.org/git/pldebugger.git3、进入pldebuggercd pldebugger4、编译安装make USE_PGXS=1make USE_PGXS=1 install5、修改配置cd /a
2020-08-28 10:14:06
2124
原创 linux安装postgresql12.2
参考:https://www.cnblogs.com/acker-ploy/p/11978953.html说明很详细;在安装过程中做个补充:1、安装完成,但是远程访问出现地址无法访问的问题修改postgresql.conf配置参数 listen_addresses 时考虑是否会有远程访问数据库的需求,如无,设置成 本服务器地址需要远程访问数据库,设置为listen_addresses =’*’还需要修改data/pg_hba.conf对网段的限制,或者无限制在已经启动数据库的情况下,需要
2020-08-27 16:12:21
570
原创 postgre更新表中所有字段中只为NULL的数据
在postgre中空字符串与null是不同的,所以不能用replace来替换for循环打印void类型数据及更新操作DO $$DECLARE r record;BEGIN FOR r IN SELECT column_name from information_schema.columnswhere table_schema='public' and table_name='ods_card_d' and data_type='character varying' LOOP raise
2020-08-20 16:11:21
1273
原创 postgre 更新时子查询返回多行随机取一条
port表中有多条相同的rack值update card aset port=(select b.devicefrom port bwhere a.rack = b.rackand b.day_no = current_datelimit 1)where a.day_no=current_date
2020-08-19 14:17:21
506
原创 python解析复杂xml文件并生成csv文件(解析字典中包含列表)
主要解决复杂xml文件中关联多个信息,怎么处理成csv文件(解析生成的list是列表中嵌套字典,字典中再嵌套列表)437644.xml文件,主要信息在class=“MR”,附带信息是class=“LN_FDD”,通过distname中包含的MR值来关联,该xml文件中class="MR"的distName="PLMN-PLMN/MR-437644"关联了俩个class=“LN_FDD”,也即是distName="PLMN-PLMN/MR-437644"有俩个附带的信息<?xml version="
2020-05-18 18:21:15
1364
1
原创 python excel文件转为csv文件时如何处理excel中的整型变成浮点型的数据
#encoding='utf-8'import xlrdimport csvimport redef read_xlrd_output_type(excelFile,csvFile): data = xlrd.open_workbook(excelFile) table = data.sheet_by_index(0) rows = table.nrows ...
2020-03-12 09:24:45
1508
1
原创 linux安装python3.7.3时关于glibc-2.14的问题
安装3.7时需升级基础库glibc版本至2.14(血泪史)参考文档:https://www.cnblogs.com/kevingrace/p/8744417.html设置完成没有问题,但是后来发现glibc与locale不兼容,造成采集入库数据都是乱码,造成了恶劣影响,所以还是不要轻易动基础库后参考文档:https://blog.csdn.net/supersilly/article/d...
2020-01-03 10:56:48
2190
原创 python解析简单xml文件生成txt
简单的xml结构:<?xml version="1.0" encoding="UTF-8"?><Pa_List> <Pa id="1"> <sub>341810</sub> <id>159770</id> <equ>1</equ> <rac>...
2019-12-10 11:30:08
326
原创 文件组织
把数据库映射到文件的一种方法是使用多个文件,在任意一个文件中只存储一个固定长度的记录。另一种选择是构造自己的文件,使之能够容纳多种长度的记录。1、定长记录文件中的每个记录定义(伪代码)如下:type insructor=record ID varchar(5); name varchar(20); dept_name varchar(20); sala...
2019-10-10 22:37:22
268
原创 隐式游标返回游标总数
1、隐式游标在正常执行情况下更新的行数并不知道,可以根据SQL%ROWCOUNT得知更新的行数SET SERVEROUTPUT ONBEGINUPDATE studentSET first_name='D'WHERE first_name like 'D%';DBMS_OUTPUT.PUT_LINE(SQL%ROWCOUNT);END;2、SQL%COUNT也可以用来校验sele...
2019-10-06 20:44:50
302
原创 变异表解决方法
对于已发出DML语句的表上定义一个触发器,触发器试图读取或修改该表,会导致变异表出错。在触发器体中发出的SQL语句可能无法读取或修改一个变异表,此限制适用于行级触发器。引起变异表错误的触发器实例:CREATE OR REPLACE TRIGGER section_biuBEFORE INSERT OR UPDATE ON sectionFOR EACH ROWDECLARE v_tot...
2019-10-03 12:47:18
329
原创 高级游标
高级游标参数化游标declare CURSOR c_zip (p_state IN zipcode.state%TYPE) IS SELECT zip,city,stateFROM ZIPCODEWHERE state=p_state;BEGIN for v_zip in c_zip('NJ') loop ...... end loop;END;复杂的嵌套游标...
2019-10-01 19:26:04
248
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人