随笔分类 - SQL
摘要:一、开窗函数 开窗函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化,举例如下: 1、over(order by salary) 按照salary排序进行累计,order by是个默认的开窗函数。 SELECT EMPLOYEE_ID, SALARY, MANAGER_I
阅读全文
摘要:
语法格式:row_number() over(partition by 分组列 order by 排序列 desc) row_number() over()分组排序功能: 在使用 row_number() over()函数时候,over()里头的分组以及排序的执行晚于 where 、group by
阅读全文
语法格式:row_number() over(partition by 分组列 order by 排序列 desc) row_number() over()分组排序功能: 在使用 row_number() over()函数时候,over()里头的分组以及排序的执行晚于 where 、group by
阅读全文
摘要:
存储过程: CREATE OR REPLACE PROCEDURE stu_proc(v_name IN VARCHAR2 DEFAULT '张三', v_id OUT NUMBER) AS --声明语句段 BEGIN --执行语句段 SELECT id INTO v_id FROM student
阅读全文
存储过程: CREATE OR REPLACE PROCEDURE stu_proc(v_name IN VARCHAR2 DEFAULT '张三', v_id OUT NUMBER) AS --声明语句段 BEGIN --执行语句段 SELECT id INTO v_id FROM student
阅读全文
摘要:
需求:设置一个触发器,当EMP_NAME是'ACE'的数据插入时,更新EMP_DESC为'我被触发器更新了'。 --建立测试表 create table TEST1124 ( EMP_ID NUMBER, EMP_NAME VARCHAR2(20), EMP_DESC VARCHAR2(20));
阅读全文
需求:设置一个触发器,当EMP_NAME是'ACE'的数据插入时,更新EMP_DESC为'我被触发器更新了'。 --建立测试表 create table TEST1124 ( EMP_ID NUMBER, EMP_NAME VARCHAR2(20), EMP_DESC VARCHAR2(20));
阅读全文
摘要:
日期格式为MON-YY, 是不能用字符“MON-YY”比较日期大小的。 需要将字符“MON-YY”转换为日期格式 --报错:ORA-01843:非有效的月份 select to_date('JUL-20', 'MON-YY') from dual; 报错原因:PLSQL客户端使用的中文环境,“JUL
阅读全文
日期格式为MON-YY, 是不能用字符“MON-YY”比较日期大小的。 需要将字符“MON-YY”转换为日期格式 --报错:ORA-01843:非有效的月份 select to_date('JUL-20', 'MON-YY') from dual; 报错原因:PLSQL客户端使用的中文环境,“JUL
阅读全文
摘要:
ORACLE对无order by的语句返回的结果不进行排序,ORACLE此时的处理方式是按照数据的物理存储顺序来读取数据。因为rowid是每行数据的地址,所以有时候看起来会像是使用rowid排序的。 但这个顺序是可能被打乱的,在表的数据被删除后,rowid会被新插入的数据占用,所以一个无order
阅读全文
ORACLE对无order by的语句返回的结果不进行排序,ORACLE此时的处理方式是按照数据的物理存储顺序来读取数据。因为rowid是每行数据的地址,所以有时候看起来会像是使用rowid排序的。 但这个顺序是可能被打乱的,在表的数据被删除后,rowid会被新插入的数据占用,所以一个无order
阅读全文
摘要:
在PLSQL编写中,需要程序暂停一段时间后继续运行,可使用Oracle内置功能dbms_lock.sleep(10); 如果找不到此功能可自己安装。 SQL> conn /as sysdba SQL> @?/rdbms/admin/dbmslock.sql 测试: begin dbms_output
阅读全文
在PLSQL编写中,需要程序暂停一段时间后继续运行,可使用Oracle内置功能dbms_lock.sleep(10); 如果找不到此功能可自己安装。 SQL> conn /as sysdba SQL> @?/rdbms/admin/dbmslock.sql 测试: begin dbms_output
阅读全文
摘要:
应用场景:当我们需要追踪某个表中新增、更改、删除的数据时,可以在该表上建立一个触发器,将新增、更改、删除的数据,另包括DML操作类型、DML操作时间等记录到TEMP表。 --建立测试表 create table TEST1123 ( EMP_ID NUMBER, EMP_NAME VARCHAR2(
阅读全文
应用场景:当我们需要追踪某个表中新增、更改、删除的数据时,可以在该表上建立一个触发器,将新增、更改、删除的数据,另包括DML操作类型、DML操作时间等记录到TEMP表。 --建立测试表 create table TEST1123 ( EMP_ID NUMBER, EMP_NAME VARCHAR2(
阅读全文
摘要:
删除表中重复行 DELETE FROM table_name a WHERE ROWID < (SELECT MAX(ROWID) FROM table_name b WHERE a.col1 = b.col1 AND a.col2 = b.col2); -- 遍历所以数据,以确定重复纪录
阅读全文
删除表中重复行 DELETE FROM table_name a WHERE ROWID < (SELECT MAX(ROWID) FROM table_name b WHERE a.col1 = b.col1 AND a.col2 = b.col2); -- 遍历所以数据,以确定重复纪录
阅读全文
摘要:
触发器中经常会用到NEW和OLD两个关键字,这是系统默认的吗?只要带上NEW或者OLD,系统就知道是新数据还是老数据? CREATE OR REPLACE TRIGGER trg_del_emp_info BEFORE DELETE ON emp FOR EACH ROW DECLARE -- lo
阅读全文
触发器中经常会用到NEW和OLD两个关键字,这是系统默认的吗?只要带上NEW或者OLD,系统就知道是新数据还是老数据? CREATE OR REPLACE TRIGGER trg_del_emp_info BEFORE DELETE ON emp FOR EACH ROW DECLARE -- lo
阅读全文
摘要:
选中视图VIEW -> 右击选中描述 -> 查看列类型
阅读全文
选中视图VIEW -> 右击选中描述 -> 查看列类型
阅读全文
摘要:
正文 基础数据准备 联合索引 sname, s_code, address 主键索引 id 普通索引 height SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- -- Table structure for student -- DROP TAB
阅读全文
正文 基础数据准备 联合索引 sname, s_code, address 主键索引 id 普通索引 height SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- -- Table structure for student -- DROP TAB
阅读全文
摘要:
PLSQL ORACLE存储过程直接删除表数据,报错:PLS-00103: 出现符号 "TABLE"在需要下列之一时: := . ( @ % ; 符号 ":=在 "TABLE" 继续之前已插入。 解决:
阅读全文
PLSQL ORACLE存储过程直接删除表数据,报错:PLS-00103: 出现符号 "TABLE"在需要下列之一时: := . ( @ % ; 符号 ":=在 "TABLE" 继续之前已插入。 解决:
阅读全文
摘要:
如上图 错误原因:包里面的存储过程没有参数,不需要添加括号的,把括号去掉重新编译即可
阅读全文
如上图 错误原因:包里面的存储过程没有参数,不需要添加括号的,把括号去掉重新编译即可
阅读全文

浙公网安备 33010602011771号