Oracle
SQL LOADER导入数据
用户授权表与权限回收
行列转置
SQLPLUS导出数据(SPOOL)
存储过程记录执行异常日志
查看对象创建时间
停止正在执行的DBMS_JOB
表死锁查询
查看正在执行的sql语句
数组,自定义类型
查看最后一次DML的时间
递归(CONNECT BY)
时间间隔(1h2m3s)
REGEXP_SUBSTR行变列
TRANSLATE函数
执行动态SQL
LISTAGG和WM_CONCAT函数列合并为行
表统计分析
表空间大小统计
收缩表段(shrink space)
集合类型
LIKE操作转义
分析函数(窗口函数)
高级分组 ROOLUP、CUBE、GROUPING SETS
SYS_CONTEXT()函数
进制转换
创建DBMS_JOB
执行超长的动态DDL语句
查询占用空间前100的数据表
MERGE 语句使用(UPSERT)
随机生成密码
Scheduler job
递归获取组织的全称
执行job和停止job
本站点使用 MrDoc 构建
-
+
首页
执行动态SQL
# 执行动态SQL ```SQL --insert,update,delete execute immediate 动态SQL语句 using 绑定参数列表 returning into 输出参数列表; --select execute immediate 'select count(*) from user_tables where table_name = upper(''emp'')' into v_cnt; --动态sql执行plsql代码块 --创建存储过程供动态sql执行 CREATE OR REPLACE PROCEDURE pro_create_dept ( deptid IN OUT NUMBER, dname IN VARCHAR2, loc IN VARCHAR2 ) AS BEGIN INSERT INTO dept ( deptno, dname, loc) VALUES (deptid, dname, loc); COMMIT; END; DECLARE new_deptid NUMBER(4) := 99; new_dname VARCHAR2(30) := 'Ad'; new_loc VARCHAR2(100) := 'loc'; BEGIN --绑定变量有 in/out EXECUTE IMMEDIATE 'BEGIN pro_create_dept(:deptno, :dname, :loc); END;' USING IN OUT new_deptid, IN new_dname, IN new_loc; --指定in/out,默认为 in,如果为 in可省略不写 --写成这样也可以 ...,IN 'location' 直接用常量 dbms_output.put_line(new_deptid); END; DECLARE a_null CHAR(1); --未初始化 BEGIN EXECUTE IMMEDIATE 'UPDATE employees_temp SET commission_pct = :x' USING a_null; --未初始化的变量为NULL END; --ref cursor/sys_cursor open v_cursor for 'select * from emp where deptno = :deptno' using v_deptno; ```
vleity
2025年5月17日 17:16
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码