Oracle数据库
参考资料模式在oracle中,数据库名称作模式名,又称为表的拥有者
查找某个模式下所有的表查找模式SAPSR3DB下名称中包含LOG的表
1SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = 'SAPSR3DB' AND TABLE_NAME LIKE '%LOG%';
创建用户
创建用户
create user username identified by password;
授权connect
grant connect to username
授权特定表的select权限
GRANT SELECT ON SCHEMA_A.TABLE_NAME TO USER_A;
分页oracle中查出的数据会有一个序号,可通过该序号来进行分页,oracle中没有limit
12# 取第一条SELECT * FROM BC_MSG_LOG where rownum = 1
Alhagi实现记录
参考资料https://spec.commonmark.org/0.31.2/
CommonMark解析策略
先将文档分解为块结构,但不解析文本,链接引用定义可以先收集起来
将标题和段落中的纯文本解析为行内元素,此时可使用之前收集好的链接引用定义
强调和链接的解析策略使用分隔符栈来解析,每个栈元素需要包含如下信息:
分隔符类型[, ![, *, _
分隔符数量?
分隔符是否激活状态
分隔符是否为潜在的开启符号,或者潜在的关闭符号,或者都是
当碰到符号]的时候,调用look for link or image
当碰到输入结束时,调用强调语法处理流程,此时直到碰到栈底元素为NULL
look for link or image 从分隔符栈顶倒找[或者![
如果没找到,则返回纯文本的]
如果找到一个,但没激活,则从栈里移除那个没激活的分隔符,接着返回纯文本的]
如果找到一个并且是激活的,则查看是否为行内/引用/压缩/short cut的链接或者图像
如果不是,则从栈中移除开始标签,并且返回纯文本的]
如果是,则
返回链接或者图像节点,添加到开启符号的文本 ...
CommonMarkdown
参考资料https://spec.commonmark.org/0.31.2/
字符和行行/空行
line ending:由换行符(U+000A)和回车符(U+000D)组成,如换行不加回车,回车不加换行,以及回车跟着换行
line:0到多个字符(除line ending之外),后面跟着line ending
blank line:一个行不包含任何字符或只包含空格(U+0020)或者tab(U+0009)
特殊字符
空格:(U+0020)
tab:(U+0009)
ASCII控制字符:a character between U+0000–1F (both including) or U+007F.
ASCII标点符号:!, ", #, $, %, &, ', (, ), *, +, ,, -, ., / (U+0021–2F), :, ;, <, =, >, ?, @ (U+003A–0040), [, \, ], ^, _, ` (U+005B–0060), {, |, }, or ~ (U+007B–007E). ...
vbs脚本
使用vbs批量替换文件内容其中使用到了正则表达式进行搜索
123456789101112131415161718192021222324252627282930313233343536Const ForReading = 1Const ForWriting = 2Set objFSO = CreateObject("Scripting.FileSystemObject")Set folder = objFSO.GetFolder("E:\test\vbtest\testdir")i = 0for each file in folder.Filesif lcase(objFSO.getExtensionName(file.path))="xml" theni=i+1Set objFile = objFSO.OpenTextFile(file.path, ForReading)strOriginal = "<a>[^<]*</a>"strReplacement = "&l ...
markdown规范教程
参考资料Markdown 官方教程https://ld246.com/article/1579414663700)
标题标题为在段落开头添加#标记,在跟一个空格后添加标题内容,映射成html后,会转为h标签包裹的元素,最多支持到6级标题。
123456= markdown =# 一级标题## 二级标题= html =<h1>一级标题</h1><h2>二级标题</h2>
段落段落在html中是被<p></p>标签包裹的内容,在markdown中,使用一个空行分隔开两段文本会生成这种段落结构(也就是需要敲两次回车)。
1234567= markdown =这是第一个自然段这是第二个自然段= html =<p>这是第一个自然段</p><p>这是第二个自然段</p>
换行对应html中的<br />标签,标准的换行语法是在需要换行的地方添加两个空格然后再加一个回车,不清楚为什么不能直接回车,typora官方的建议是,尽量少用换行结构或者不用,如果需要用的话,建 ...
md编辑器相关技术记录
参考资料从零开始写一个富文本编辑器(一) - 掘金 (juejin.cn)
十分钟实现自己的Typora - 掘金 (juejin.cn)
Selection - Web API | MDN (mozilla.org)
Vditor 实现 Markdown 所见即所得 - 链滴 (ld246.com)
关于所见即所得 Markdown 编辑器的讨论 - 链滴 (ld246.com)
剪贴板操作 Clipboard API 教程 - 阮一峰的网络日志 (ruanyifeng.com)
https://spec.commonmark.org/0.31.2
SelectionSelection中存储用户选择的文本范围或者插入符号的位置,获取方式:window.getSelection()
在不可编辑元素中,插入点位置和选区范围必须通过鼠标的点击或者拖拽产生,在可编辑元素中,插入点位置和选取范围也可以通过键盘方向键变化。
可通过window.getSelection().toString()获取被选中的文字
Range可通过selection.getRangeAt获取
Range.commo ...
扫描枪接入前端
参考资料B8DDFFC785FF7F57091E2CD5EC7FD5AF.pdf (manuallib.com)
HID 简介 - USB中文网 (usbzh.com)
配置条形码扫描仪 - UWP applications | Microsoft Learn
HID设备HID(Human Interface Device,人机接口设备)是USB设备中常用的设备类型
HID-KBW:键盘 wedge 模式,允许你将条形码扫描到无法感知条形码扫描仪的应用程序(如记事本)。 在此模式下扫描条形码时,条形码扫描仪的解码数据将插入插入点,就像使用键盘键入数据一样。
HID-POS:貌似是可以双向通信的协议
OH340相关功能记录
可启用USB HID功能
可修改访问HID设备频率
有KPW和POS两种模式切换,默认KPW
可设置输入时大写锁定(CapsLock)的状态,默认关闭
可设置前导键,前导键默认关闭,键值为ctrl+shift+r,启用后在每次扫描后输入内容前会先输出前导键
默认会在扫描结束后再解码数据后添加结束符CR,此外可选择关闭、TAB、CRLF
启用设置需要读取开启设置码, ...
Elasticsearch
参考资料Download Elasticsearch | Elastic
配置windows下直接启动bin\elasticsearch.bat后无法访问(hang up),经验证,需要先将配置文件中的xpack.security.enabled: true改为xpack.security.enabled: false。
启动运行bin\elasticsearch.bat后,访问http://localhost:9200/
显示内容如下,即为启动成功
1234567891011121314151617{ "name": "....", "cluster_name": "elasticsearch", "cluster_uuid": ".....", "version": { "number": "8.14.3", "build_flavor": &q ...
代理
参考资料代理服务器原理(https, socks5) - Leo’s Blog (leo021017.github.io)
让代理服务器支持HTTPS很难吗?_代理服务器不支持443-CSDN博客
代理过程
客户端通过http协议发送一条connect请求给代理服务器,并告知代理服务器需要连接的主机和端口。
代理服务器和目标主机建立tcp连接,回送一条http200的响应给客户端
客户端向代理服务器发送给目标服务器的数据,代理服务器会通过第二部建立的tcp连接进行转发
代理https在代理服务器代理https请求时,会将发送方发来的消息原封不动的发送给接收方,然后将接收方的请求原封不动的再返回给发送方,由于只是做请求的转发,故https的加解密并不在代理服务器上进行,故在客户端服务器上配置相关证书即可。
银行接口加密技术记录
记录最近做了一些对接银行的接口,用到了各种加密技术,这里记录一下
PGPPGP工作原理简述 | Mr.Muzi (marcuseddie.github.io)
gpg 密钥生成、导入、导出、自动输入密码_centos如何导入gpg-CSDN博客
OpenPGP 工作方式 | SAP Help Portal
汇丰银行要求使用PGP的方式来进行加解密,PGP最初是一款软件,其提供了一种混合加密的方式,将需要传输的信息使用对称加密如AES算法加密,接着将对称加密的密钥使用非对称算法进行加密,同时会使用散列算法将报文进行摘要,并使用私钥对其进行签名。所有的信息都会被封装进一个数据结构,发送给对方。
后来PGP将其协议公开,形成了OpenPGP,而GPG是实现了该协议的一种工具,可用于加解密内容或者生成PGP密钥。
PGP签名
发送方使用摘要算法计算消息内容中的摘要(或哈希值)。
PGP 签名支持以下哈希算法:
对于 DSA 密钥:SHA-1、SHA224、SHA256、SHA384、SHA512
对于 RSA 密钥:MD5、SHA-1、RIPE-MD/160、SH256、SHA3 ...