PL/SQL 函数
掌握函数的创建、修改及删除函数创建的语法格式:Create [or replace] function (<参数1> [方式1]<数据类型1>,<参数2> [方式2]<数据类型2>…)Return<数据类型> is|asPl/sql程序体 ――其中必须有一个return语句 注:通常函数只有in类型的参数 例1: 123456789101112131415SET SERVEROUTPUT ON FORMAT WRAPPEDCREATE OR REPLACE FUNCTION DEPT_NUM ( IN_DEPT IN SCOTT.EMP.DEPTNO%TYPE) RETURN NUMBER AS OUT_NUM NUMBER;BEGIN SELECT COUNT(*) INTO OUT_NUM FROM SCOTT.EMP WHERE SCOTT.EMP.DEPTNO=IN_DEPT; RETURN(OUT_NUM);END...
PL/SQL 存储过程
PL/SQL 存储过程存储过程的创建及使用首先:set serveroutput on format wrapped 说明: In 参数类型:表示这个参数值输入给过程,供过程使用; Out参数类型:表示该参数是输出类型的参数,表示这个参数在过程中被赋值,可以传给过程体外的环境; In out参数类型:这种类型的参数实际上就是综合了上述两种参数类型,及向过程体传值,也向过程体外的环境传值; 例1:in /out 参数的使用 123456789101112CREATE OR REPLACE PROCEDURE DEPT_MEMBER_NUM ( IN_DEPTNO IN SCOTT.EMP.DEPTNO%TYPE, OUT_TOTAL_NUM OUT NUMBER) ASBEGIN SELECT COUNT(*) INTO OUT_TOTAL_NUM FROM SCOTT.EMP WHERE DEPTNO=IN_DEPTNO;END DEPT_MEMBER_NUM; 调用存储过程: 1234567DECLARE ...
Oracle PL/SQL 游标
PL/SQL中的游标CURSOR注意例子中:%TYPE和%ROWTYPE两种特殊变量; 游标是用来处理使用select语句从数据库中检索到的多行记录的工具,借助于游标的功能,数据库应用程序可以对一组记录逐个进行处理,每次处理一行。可以将游标理解为指向select查询结果的指针。 游标分为显式游标和隐式游标,隐式游标无需用户过问,我们主要学习显式游标。 显式游标处理的4个步骤: a)声明游标 b)为查询打开游标 c)将结果提取到PL/SQL变量中 d)关闭游标 123456789101112131415161718192021222324DECLARE -- [1] 返回值 EMP SCOTT.EMP%ROWTYPE; -- [2] 游标 CURSOR EMP_CUR IS SELECT EMPNO, SAL FROM SCOTT.EMP;BEGIN -- [3] open OPEN EMP_CUR; -- [4] loop LOOP -- [5] exit condition EXIT WHEN...
vim 进阶
vim 进阶开始之前此时的你已经熟悉vim的基本使用(打开、编辑、保存和退出),但仍然觉得vim用起来别扭。 究其原因,我觉得是现在的我们已经习惯于使用鼠标操作(滑动、点击、长按选择)而vim则使用按键完成鼠标的工作。以至于我们看到一段文章无意识的想用鼠标选择,但是使用vim的我们不得不先动动脑子想想该按那几个按键。这种别扭应该只会存在于不熟悉vim按键的阶段。所谓进阶就是熟悉按键操作克服这种别捏。 要熟悉按键,我们最先想到的也许是去记忆键位,但对于vim那并不是最快捷高效的方式。 vim 的核心概念是模式编辑,即按键在不同的模式下作用不同。 你可以在普通模式下浏览文件,在插入模式下插入文本,在可视模式下选择行或块,在命令模式下执行命令等。 和模式编辑紧密相连的概念是 操作符 和 动作。操作符 指的是开始某个行为, 例如:修改、删除或者选择文本,之后你要用一个 动作 来指定需要操作的文本区域。 例如,删除一个单词,执行 daw ( delete around word),删除3个单词,执行 daw ( delete 3...
Java 多线程
Java 多线程synchronized对于非静态成员:锁加在 类.class 对象上对于静态成员:锁加在 this 对象上 锁是什么? 锁是一个”对象“: 对象中有一个标志位,记录自己有没有被某个线程占用。 如果被占用记录线程的id,知道是那个线程。 维护一个 thread id list,记录其他所有阻塞的、等待拿锁的线程。 锁是“对象”,共享资源也是”对象“,二者可合二为一。 wait notifywait notify和synchronized 作用的对象是同一个 wait 释放锁 阻塞,等待被其他对象notify 重新拿锁 volatile使用内存屏障实现 内存可见性 多核逻辑CUP缓存和内存 指令重排序 没有依赖关系的指令可能重排序 as-if-serial 语义 和单线程执行结果相同 happen-before 若 A happen-before B,则A的执行结果对B可见。 Compare And Set...
PL/SQL 基础
PL/SQL 基础PL/SQL的基本结构:PL/SQL是一种块结构语言,其块结构如下: 1234567891011121314DECLARE ――声明部分:声明变量、常量、用户定义的数据类型以及游标 ――这一部分可选,不需要可不写BEGIN ――主程序体,在这可以加入各种合法的语句EXCEPTION ――异常处理程序,当程序中出现错误时执行这一部分 ――这一部分可选END; ――主程序体结束,分号必不可少; 从上面的结构可以看出,PL/SQL块由三部分组成:声明部分、执行部分和异常处理部分,其中只有执行部分是必须的:BEGIN /*执行部分*/ END; 12345DECLARE /*声明部分*/ BEGIN /*执行部分*/ END; 都是合法的。 PL/SQL中的数据类型(1) 标量NUMBER–用于存储和操纵数字数据 ,格式是NUMBER(p,s),p是数据宽度,s是小数点后的位数,默认为0; CHARACTER―― CHAR :字符型,最长2000b ...
Oracle User
创建用户123456789CREATE USER user IDENTIFIED {BY password | EXTERNALLY} [ DEFAULT TABLESPACE tablespace ] [ TEMPORARY TABLESPACE tablespace ] [ QUOTA {integer [K | M ] | UNLIMITED } ON tablespace [ QUOTA {integer [K | M ] | UNLIMITED } ON tablespace ]...] [ PASSWORD EXPIRE ] [ ACCOUNT { LOCK | UNLOCK }] [ PROFILE { profile | DEFAULT }] 修该密码 alter user scott identified by “tiger”; 删除用户1DROP USER user [CASCADE] CASCADE...
Oracle Object
Oracle Object表123create table t_<name>;select * from t_<name>;drop table t_<name>; 常用数据类型varchar2(n) 可变长的字符串 具体定义时指明最大长度n byte,最大字节数都是4000(UTF8 1333个汉字) number(precision,scale) 可变长的数值列,允许浮点数、正值及负值 precision [1,38] 是所有有效数字的位数(从左边第一个不为0的数算起,小数点和负号不计入有效位数) scale [-84,127] 是小数点以后的位数,多出来的位数四舍五入 date 时间日期 包括:世纪、年、月、日、时、分、秒 sysdate TO_CHAR(SYSDATE, 'yyyy-mm-dd hh24:mi:ss') TO_DATE('2002-10-09 13:23:44', 'yyyy-mm-dd hh24:mi:ss') blob 二进制数据...
OpenGauss Database
OpenGauss Database安装1234567891011docker run --name opengauss --privileged=true -d -e GS_PASSWORD=Tq@021009 -p 5432:5432 enmotech/opengauss:latestdocker run --name opengauss --privileged=true -d -e GS_PASSWORD=Tq@021009 -p 5432:5432 opengauss/opengaussgsql -d postgres -U gaussdb -W 'Tq@021009' -h host_ip -p 5432su - ommgsql 12345678910步骤 1 以操作系统用户omm登录数据库主节点。gs_om -t status --detail步骤 2 使用如下命令查询openGauss状态:若要查询某主机上的实例状态,请在命令中增加“-h”项。示例如下:。示例如下:gs_om -t status -h plat2...
Archlinux Mail
Archlinux Mail安装1sudo pacman -S s-nail 编辑配置文件sudo vim /etc/mail.rc 12345set from="<USERNAME>@qq.com"set smtp-auth=loginset mta=smtps://<USERNAME>:<QQ邮箱授权码>@smtp.qq.com:465 #smtp服务器端口是465set v15-compat #必须要set nss-config-dir=/root/.certs 获得邮箱的SSL证书并存放到本地最后一行的nss-config-dir就是制定的存放QQ邮箱SSL证书的位置 手动的获取QQ邮箱的证书保存到本地指定的目录里以备调用和验证 12345678su rootmkdir -p /root/.certs/echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END...




