2025/02/18 17:35:26
今天网络被持续攻击,攻击频率之高令人发指
79.124.40.94 #国外IP,疑似主IP,下面二十几IP都是国内的,疑似肉鸡
123.7.18.116
36.140.10.64
223.108.111.194
112.51.96.142
218.78.122.230
111.10.223.2
115.239.160.246
154.89.10.220
218.17.143.117
175.42.33.95
112.2.55.181
124.28.197.138
223.108.111.238
124.232.147.204
218.85.116.202
222.79.56.194
223.75.187.13
222.75.100.74
112.27.125.137
124.65.97.230
121.12.149.101
历史黑IP
79.124.56.186
141.255.167.50
46.19.142.242
83.222.190.78
31.7.62.234
185.147.124.102
103.186.108.229
175.6.40.66
2025/02/05 10:52:39
在windows terminal里支持上传下载文件
windows terminal
winget install trzsz
linux server
echo '[trzsz]
name=Trzsz Repo
baseurl=https://yum.fury.io/trzsz/
enabled=1
gpgcheck=0' | sudo tee /etc/yum.repos.d/trzsz.repo
sudo yum install trzsz
使用
# 连接(-d开启支持拖拽进去,ssh 可以换成其他ssh工具,比如支持自动保存密码的ssx)
trzsz -d ssh root@192.168.1.1
# 从服务器里下载文件到本地
tsz filename
# 上传文件到服务器
trz
2025/01/28 20:35:53
2025年微软第一坑:
更新WIN10 的 KB5049981 以及 WIN11 的 KB5050009这两个补丁之一 ,会导致部分USB设备无法启动,比如摄像头和耳机。我的视频采集卡在USB3.0协议下就出现了这个问题,设备管理器里显示无法启动,错误代码 10。可笑的是,搜索微软官方解决方案,建议的是更新最新驱动,可是这个问题正是开启了系统更新而导致的。目前的解决方案只能是卸载2025年的这第一个安全补丁。
2025/01/02 17:11:02
字符转数字,如果存在非数字导致报错,根据上下文不同,可能会触发两种不同的报错:
在SQL上下文中,触发 INVALID_NUMBER,
而在PL/SQL上下文中,触发 VALUE_ERROR 异常
而数值精度溢出的报错,无论在SQL还是PLSQL中,触发都是value_error。
但value_error还包含非常多异常情况,比如字符串超长,非法日期格式等。
这两种错误在Gauss中并不能一一对应。
因此gauss上兼容这两个异常,比较通用的方式是,INVALID_NUMBER和VALUE_ERROR都改写成data_exception
2024/12/04 10:29:12
发现一个9年前的坑至今未填,今天撞上了
https://github.com/porcelli/plsql-parser/ 这个项目合并到antlr4里去的时候,把`case when`里一个判断改成了todo,导致无法识别该case when是sql语句中的还是plsql语句中的,关键就是end case中的case是否应该作为别名
2024/11/14 14:26:29
一些特殊场景下的gsql连接方式
gsql -r "postgresql://system:oracle@127.0.0.1:26200/testdb"
gsql -r "postgresql://127.0.0.1:26200,127.0.0.2:26200/testdb?user=system&password=orac
le"
gsql -r "host=127.0.0.1,127.0.0.2 port=26200 user=system dbname=testdb password=oracle
target_session_attrs=primary"
gsql -r "host=127.0.0.1 port=26200 user=system dbname=testdb password=oracle application_name=shell"
2024/10/28 09:25:03
本站后台数据库已从h2切换成MogDB 5.2.0版本-20241028
2024/10/10 21:45:03
又被一个IP攻击了
79.124.56.186
https://otx.alienvault.com/indicator/ip/79.124.56.186
2024/09/26 13:28:43
winscp删除文件目录时,在SFTP和FTP协议的情况下,会对每个文件单独发送删除命令,如果该目录文件数特别多,删除就会很慢,此时有两种方式
一、打开终端,在终端里用命令删
二、给winscp添加自定义命令
Deleting on Background
Use the following command to delete a large directory structure in a separate process:
cmd /C start "" cmd /C ""%WINSCP_PATH%\WinSCP.com" /command "open !E" "cd !/" "rm !&" "exit" & "%WINSCP_PATH%\WinSCP.exe" "!E" /refresh "!/""
Check custom command options Local command, Apply to directories and Use remote files.
注意勾上 本地命令、应用到目录、使用远端文件
之后删除的时候,选择目录,然后鼠标右键,文件自定义命令,点刚刚加好的名称即可
2024/09/23 15:39:24
在oracle19c中,有个函数getlong,可以在查询sql中将long类型的字段返回成varchar2类型,用法如下
select getlong(1,rowid),t.* from VIEW$ t;
但是需要注意,这个函数只能查两个表里的long类型,内部实现如下
if (opcode = 1) then
tablename := 'SYS.VIEW$';
colname := 'TEXT';
elsif (opcode = 2) then
tablename := 'SYS.CDEF$';
colname := 'CONDITION';
else
return NULL;
end if;
stmt := 'SELECT ' || colname || ' FROM ' || tablename ||
' WHERE ROWID = :1';
CDBView_internal.long2varchar2_i(stmt, p_rowid, retval);
return retval;
如果需要支持查其他表的,需要再自行封装,调用CDBView_internal.long2varchar2_i
从rowid里,理论上是可以解析出来对应的表的,感觉ORACLE这里的实现其实有点草台班子了。至于字段名,也可以传个字段名的字符串进去
其实ORACLE的处理思路和aktom的一个帖子比较像 https://asktom.oracle.com/ords/f?p=100:11:0::::P11_QUESTION_ID:839298816582
成品
create or replace function long2varchar(p_colname in varchar2, p_rowid in rowid)
return varchar2 as
tablename dbms_id;
stmt varchar2(400);
retval varchar2(4000);
PROCEDURE long2varchar2_i(stmt IN VARCHAR2,
rowid IN ROWID,
rowval IN OUT VARCHAR2) IS
EXTERNAL NAME "kpdbLong2Varchar2"
LANGUAGE C
LIBRARY DBMS_PDB_LIB
PARAMETERS(stmt OCIString,
stmt indicator sb4,
rowid OCIString,
rowid indicator sb4,
rowval OCIString,
rowval indicator sb4,
rowval length sb4,
rowval maxlen sb4);
begin
select owner || '.' || object_name
into tablename
from dba_objects t
where t.data_object_id = dbms_rowid.rowid_object(p_rowid);
stmt := 'SELECT ' || p_colname || ' FROM ' || tablename ||
' WHERE ROWID = :1';
long2varchar2_i(stmt, p_rowid, retval);
return retval;
end;
select long2varchar('TEXT',rowid),t.* from VIEW$ t;