PL/SQL变量作用域
DECLARE v_i PLS_INTEGER := 100; v_p VARCHAR2(200) := 'a';BEGIN DECLARE v_i PLS_INTEGER := 999; BEGIN dbms_output.put_line(v_i); dbms_output.put_line(v_p); END; dbms_output.put_line(v_i);END;脚本输出:从中可...
Oracle游标打开时遇到并发更新
以前,只知道Oracle的游标里包含的数据在打开的那一刻已经确定了,但是自己没有实际去验证过。今天做了一次测试,发现情况确实如此建表: create table test_cursor( id number, c_name varchar2(20) ); insert into test_curs...
不用分析函数求出每组前几名
create table score( id int, class varchar(20), name varchar(200), score int)insert into score values(1, '一班', 'A1', 60)insert into score values(2, '一班', 'A2', 70)insert into score values(3, '一班', 'A3', 80)insert into score values(4, '一班', 'A4', 90)insert into s...
SQL Server游标使用练习
create table 库存(wareid varchar(13),makeno varchar(40),storeqty numeric(16,6))insert into 库存 select 'A','批号1',30insert into 库存 select 'A','批号2',40insert into 库存 select 'A','批号3',50insert into 库存 select 'B','批号8',15insert into 库存 select 'B','批号9',40insert into 库存 s...
SQL Server动态SQL,绑定变量
create table test_with( pid int, parentid int, name varchar(60))declare @pid int = '99',@name nvarchar(60) = 'ABCD'declare @parentid int = 2declare @sql varchar(3000)set @sql = 'insert into test_with values('+CAST(@pid as varCHAR(10))+','+CAST(@pid as varCHAR(10))+',"'...
SQL Server递归查询
create table test_with( pid int, parentid int, name varchar(60))insert into test_with values(1, null, 'A')insert into test_with values(2, null, 'B')insert into test_with values(3, null, 'C')insert into test_with values(4, 1, 'A1')insert into test_with values(5, 1, 'A2')...
SQL Server SQL语句中的函数调用与Oracle SQL语句函数调用一个有趣的差别
create table t1(col numeric)declare @i int = 0while @i
利用DBMS_SESSION.SET_CONTEXT传值
公司的应用有一需求: 现有一需求,需要在行级触发器执行存储在数据库表当中的一段PL/SQL脚本类似于CREATE OR REPLACE TRIGGER tr_emp AFTER UPDATE OR INSERT ON emp FOR EACH ROWDECLARE cursor cur_emp is select sysdate from dua; v_empno e...
Oracle动态SQL参数支持复杂类型
一直以为动态SQL中的绑定变量只能支持简单数据类型,今天试了一下rowtype, PL/SQL引擎是可以支持的。以下是代码,scott用户可以运行 CREATE PROCEDURE test_param_type(p_emp emp%ROWTYPE) ISBEGIN dbms_output.put_line(p_emp.ename);END; /DECLARE CURSOR cu...
SQL Server raiserror
select GETDATE()print('1')raiserror 50001 '此处出错了'print('2')select GETDATE()-2与Oracle不同,上面的T-SQL代码不会因为错误的出现而中断执行,而是会接着执行后续的print与select。所以在raiserror之后,需要加上return来确保退出正在执行的代码块...
SQL Server游标使用例子
use ggsgodeclare @first_name varchar(200)declare @last_name varchar(200)declare cur_emp cursor for select first_name, last_name from emp --声明游标create table #temp2(col1 varchar(200), col2 varchar(200)) --创建一个临时表open cur_emp--打开游标fetch next from cur_emp into @first_name,@last_nam...
Oracle Enterprise Linux下安装Oracle 12c
首先必须安装以下依赖包:binutils-2.20.51.0.2-5.11.el6 (x86_64)compat-libcap1-1.10-1 (x86_64)compat-libstdc++-33-3.2.3-69.el6 (x86_64)compat-libstdc++-33-3.2.3-69.el6 (i686)gcc-4.4.4-13.el6 (x86_64)gcc-c++-4.4.4-13.el6 (x86_64)glibc-2.12-1.7.el6 (i686)glibc-2.12-1.7.el6 (x86_64)glibc-devel-2....
Oracle Log Miner相关
create directory log_dir as 'd:\oraclelogs';BEGIN dbms_logmnr_d.build('ora11g.ora', dictionary_location => 'LOG_DIR');END;begin dbms_logmnr.add_logfile('C:\ORACLE\FAST_RECOVERY_AREA\ORCL\ONLINELOG\O1_MF_3_97OZM5HJ_.LOG',dbms_logmnr.NEW);end;begin dbms_logmnr.start_lo...
U盘启动安装Redhat Enterprise Linux 6.4
1.制作U盘启动盘 使UtraIso将下载的ISO文件写入U盘。我碰到的情况是:写入后将U盘作为启动盘安装,提示要安装镜像,这时候将下载的ISO再拷入U盘,重新开始安装即可 我安装的RHEL版本是6.4 2.按照提示安装
Oracle集合的first, last , next ,count,exist
DECLARE TYPE typ_nums IS TABLE OF NUMBER INDEX BY PLS_INTEGER; v_nums typ_nums; v_index NUMBER;BEGIN v_nums(1) := 12; v_nums(3) := 45; v_nums(56) := 67; ...
Oracle扩展统计信息
从Oracle 11g开始,数据库可以收集基于表达式或者一组列上的对象统计信息和直方图。 可以针对关联列或者表达式来收集扩展统计信息。 关联列是指,假设有个世界人口表...
Ubuntu下安装oracle 12c
1. 注意要安装libaio.so.1, 否则安装完成之后,sqlplus, netca, dbca等工具都启动不了 sudo apt-get install libaio-dev sudo apt-get update sudo apt-get d...
无聊写的简单用PLSQL分割字符串的脚本
DECLARE v_str VARCHAR2(4000) := 'aa,bb,cc,dd,ee,'; v_length PLS_INTEGER; TYPE typ_str_tab IS TABLE OF VARCHAR2(20) INDEX BY PLS_INTEGER; v_str_arr typ...
DBMS_SQL例子
DECLARE l_cursor PLS_INTEGER; l_wareid t_ware_base.wareid%TYPE; l_warename t_ware_base.warename%TYPE; l_retval PLS_INTEGER;BEGIN l_cursor := dbms_sql...
Oracle EM Https WIndows不能访问防火墙配置
在数据库服务器上安装了dbconsole,但是只能在本机访问https://localhost:1158/em。经检查,防火墙隔离了1158端口与oracle的EM web服务。在做了一下配置之后,问题解决:1.在windows防火墙的高级设置中新...