ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>青草av.久久免费一区,在线欧美一级视频,国产精品久久久久影视http://www.aygfsteel.com/stevenjohn/category/51103.htmlé‚£äº›é’æ˜¥çš„岿œ?/description>zh-cnWed, 21 Aug 2013 02:47:19 GMTWed, 21 Aug 2013 02:47:19 GMT60Oracle行çñ”é”和表çñ”é”?http://www.aygfsteel.com/stevenjohn/archive/2013/08/20/403102.htmlabinabinTue, 20 Aug 2013 14:38:00 GMThttp://www.aygfsteel.com/stevenjohn/archive/2013/08/20/403102.htmlhttp://www.aygfsteel.com/stevenjohn/comments/403102.htmlhttp://www.aygfsteel.com/stevenjohn/archive/2013/08/20/403102.html#Feedback0http://www.aygfsteel.com/stevenjohn/comments/commentRss/403102.htmlhttp://www.aygfsteel.com/stevenjohn/services/trackbacks/403102.htmlselect * from abin1 t where t.id=21 for update;
表çñ”é”? lock table abin1 IN EXCLUSIVE MODE (nowait);
]]>ORACLE分页SQLè¯å¥http://www.aygfsteel.com/stevenjohn/archive/2013/05/10/399100.htmlabinabinFri, 10 May 2013 05:29:00 GMThttp://www.aygfsteel.com/stevenjohn/archive/2013/05/10/399100.htmlhttp://www.aygfsteel.com/stevenjohn/comments/399100.htmlhttp://www.aygfsteel.com/stevenjohn/archive/2013/05/10/399100.html#Feedback0http://www.aygfsteel.com/stevenjohn/comments/commentRss/399100.htmlhttp://www.aygfsteel.com/stevenjohn/services/trackbacks/399100.html1.æ ÒŽ®ROWIDæ¥åˆ† select * from t_xiaoxi where rowid in(select rid from (select rownum rn,rid from(select rowid rid,cid from
t_xiaoxi order by cid desc) where rownum<10000) where rn>9980) order by cid desc; 执行旉™—´0.03¿U?br />2.按分æžå‡½æ•°æ¥åˆ?br />select * from (select t.*,row_number() over(order by cid desc) rk from t_xiaoxi t) where rk<10000 and rk>9980; 执行旉™—´1.01¿U?br />3.按ROWNUMæ¥åˆ† select * from(select t.*,rownum rn from(select * from t_xiaoxi order by cid desc) t where rownum<10000) where
BEGIN INSERT INTO t (test_value) VALUES ('Child block insert'); COMMIT; END child_block; /
CREATE OR REPLACE PROCEDURE parent_block IS
BEGIN INSERT INTO t (test_value) VALUES ('Parent block insert');
child_block;
ROLLBACK; END parent_block; /
-- run the parent procedure exec parent_block
-- check the results SELECT * FROM t;
Output: Parent block insert Child block insert
With Pragma Autonomous Transaction
CREATE OR REPLACE PROCEDURE child_block IS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN INSERT INTO t (test_value) VALUES ('Child block insert');
COMMIT; END child_block; /
CREATE OR REPLACE PROCEDURE parent_block IS
BEGIN INSERT INTO t (test_value) VALUES ('Parent block insert');
child_block;
ROLLBACK; END parent_block; / -- empty the test table TRUNCATE TABLE t;
-- run the parent procedure exec parent_block;
-- check the results SELECT * FROM t;
Output: Child block insert
Autonomous Transaction Demo 2
Without Pragma Autonomous Transaction DROP TABLE t;
CREATE TABLE t (testcol NUMBER);
CREATE OR REPLACE FUNCTION howmanyrows RETURN INTEGER IS i INTEGER; BEGIN SELECT COUNT(*) INTO i FROM t;
RETURN i; END howmanyrows; /
CREATE OR REPLACE PROCEDURE testproc IS a INTEGER; b INTEGER; c INTEGER; BEGIN SELECT COUNT(*) INTO a FROM t;
INSERT INTO t VALUES (1); COMMIT;
INSERT INTO t VALUES (2); INSERT INTO t VALUES (3);
b := howmanyrows;
INSERT INTO t VALUES (4); INSERT INTO t VALUES (5); INSERT INTO t VALUES (6); COMMIT;
SELECT COUNT(*) INTO c FROM t;
dbms_output.put_line(a); dbms_output.put_line(b); dbms_output.put_line(c); END testproc; /
set serveroutput on
exec testproc
Output: 0 3 6 Total execution time 2.782 sec.
With Pragma Autonomous Transaction
CREATE OR REPLACE FUNCTION howmanyrows RETURN INTEGER IS
i INTEGER;
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
SELECT COUNT(*)
INTO i
FROM t;
RETURN i;
END howmanyrows;
/
-- empty the test table
TRUNCATE TABLE t;
exec testproc;
]]>sql ˜q‡æ×oé‡å¤è®°å½•http://www.aygfsteel.com/stevenjohn/archive/2013/01/04/393780.htmlabinabinFri, 04 Jan 2013 14:51:00 GMThttp://www.aygfsteel.com/stevenjohn/archive/2013/01/04/393780.htmlhttp://www.aygfsteel.com/stevenjohn/comments/393780.htmlhttp://www.aygfsteel.com/stevenjohn/archive/2013/01/04/393780.html#Feedback0http://www.aygfsteel.com/stevenjohn/comments/commentRss/393780.htmlhttp://www.aygfsteel.com/stevenjohn/services/trackbacks/393780.htmlåˆ é™¤é‡å¤çš„记录,åªä¿ç•™ä¸€æ¡ï¼š delete from abin1 t where rowid not in (select max(rowid) from abin1 s group by s.id1 ); delete from abin1 t where t.rowid not in (select min(s.rowid) from abin1 s where t.id1=s.id1 group by s.id1) åˆ é™¤å…¨éƒ¨é‡å¤è®°å½•åQ?br />delete from abin1 t where t.id1 in (select s.id1 from abin1 s group by s.id1 having count(s.id1)>1 ); delete from abin1 t where exists (select * from abin1 s where t.id1=s.id1 group by s.id1 having count(s.id1)>1) å–出有é‡å¤çš„记录åQŒæ²¡æœ‰é‡å¤çš„啿¡è®°å½•ä¸å–åQ?br />select * from abin1 t where t.id1 in (select s.id1 from abin1 s group by s.id1 having(count(s.id1))>1 ); select * from abin1 t where exists (select * from abin1 s where s.id1=t.id1 group by s.id1 having(count(s.id1))>1); åˆ é™¤é‡å¤è®°å½•åQˆä¿ç•™ä¸€æ¡ï¼‰åQ?br />delete from abin1 t where t.id1 not in(select max(s.id1) from abin1 s group by s.name1 having count(s.name1)>0);
select '1' as type,FL_ID,FL_CODE,FL_CNAME,FLDA.FL_PARENTID from FLDA WHERE ZT_ID=2006030002 union select '2' as type,XM_ID,XM_CODE ,XM_CNAME ,FL_ID from XMDA where exists (select * from (select FL_ID from FLDA WHERE ZT_ID=2006030002 ) a where XMDA.fl_id=a.fl_id) order by type,FL_PARENTID ,FL_ID
  从效率上è¯ß_¼ŒUNION ALL è¦æ¯”UNION快很多,所以,如果å¯ä»¥¼‹®è®¤åˆåƈ的两个结果集ä¸ä¸åŒ…å«é‡å¤çš„æ•°æ®çš„è¯ï¼Œé‚£ä¹ˆž®×ƒ‹É用UNION ALLåQŒå¦‚下:
]]>oracle alter tablehttp://www.aygfsteel.com/stevenjohn/archive/2012/12/03/392358.htmlabinabinMon, 03 Dec 2012 02:51:00 GMThttp://www.aygfsteel.com/stevenjohn/archive/2012/12/03/392358.htmlhttp://www.aygfsteel.com/stevenjohn/comments/392358.htmlhttp://www.aygfsteel.com/stevenjohn/archive/2012/12/03/392358.html#Feedback0http://www.aygfsteel.com/stevenjohn/comments/commentRss/392358.htmlhttp://www.aygfsteel.com/stevenjohn/services/trackbacks/392358.html Table created
SQL> desc lee Name Type Nullable Default Comments ----- ------------- -------- ------- -------- ID NUMBER NAME VARCHAR2(100) Y SCORE NUMBER Y
SQL> alter table lee add createtime date;
Table altered
SQL> desc lee Name Type Nullable Default Comments ---------- ------------- -------- ------- -------- ID NUMBER NAME VARCHAR2(100) Y SCORE NUMBER Y CREATETIME DATE Y
SQL> alter table lee modify createtime nvarchar2(100);
Table altered
SQL> desc lee Name Type Nullable Default Comments ---------- -------------- -------- ------- -------- ID NUMBER NAME VARCHAR2(100) Y SCORE NUMBER Y CREATETIME NVARCHAR2(100) Y
SQL> alter table lee rename column createtime to mytime;
Table altered
SQL> desc lee Name Type Nullable Default Comments ------ -------------- -------- ------- -------- ID NUMBER NAME VARCHAR2(100) Y SCORE NUMBER Y MYTIME NVARCHAR2(100) Y
SQL> alter table lee modify mytime date;
Table altered
SQL> desc lee Name Type Nullable Default Comments ------ ------------- -------- ------- -------- ID NUMBER NAME VARCHAR2(100) Y SCORE NUMBER Y MYTIME DATE Y
SQL> desc lee Name Type Nullable Default Comments ------ ------------- -------- ------- -------- ID NUMBER NAME VARCHAR2(100) Y SCORE NUMBER Y MYTIME DATE Y
SQL> alter table lee rename column mytime to createtime;
Table altered
SQL> desc lee Name Type Nullable Default Comments ---------- ------------- -------- ------- -------- ID NUMBER NAME VARCHAR2(100) Y SCORE NUMBER Y CREATETIME DATE Y
SQL> alter table lee drop column createtime;
Table altered
SQL> desc lee Name Type Nullable Default Comments ----- ------------- -------- ------- -------- ID NUMBER NAME VARCHAR2(100) Y SCORE NUMBER Y
1ã€æ¯ä¸€ä¸ªåˆ†åŒºéƒ½å¿…须有一个VALUES LESS THENåå¥åQŒå®ƒæŒ‡å®šäº†ä¸€ä¸ªä¸åŒ…括在该分区ä¸çš„上é™å€¹{€‚分区键的ä“Q何值ç‰äºŽæˆ–者大于这个上é™å€¼çš„è®°å½•éƒ½ä¼šè¢«åŠ å…¥åˆ°ä¸‹ä¸€ä¸ªé«˜ä¸€äº›çš„åˆ†åŒºä¸ã€?/div>
3ã€åœ¨æœ€é«˜çš„分区ä¸ï¼ŒMAXVALUE被定义。MAXVALUE代表了一个丼‹®å®šçš„倹{€‚这个值高于其它分åŒÞZ¸çš„ä“Q何分区键的å€û|¼Œä¹Ÿå¯ä»¥ç†è§£äؓ高于ä»ÖM½•åˆ†åŒºä¸æŒ‡å®šçš„VALUE LESS THENçš„å€û|¼ŒåŒæ—¶åŒ…括½Iºå€¹{€?/div>
CREATE TABLE CUSTOMER ( CUSTOMER_ID NUMBER NOT NULL PRIMARY KEY, FIRST_NAME VARCHAR2(30) NOT NULL, LAST_NAME VARCHAR2(30) NOT NULL, PHONE VARCHAR2(15) NOT NULL, EMAIL VARCHAR2(80), STATUS CHAR(1) ) PARTITION BY RANGE (CUSTOMER_ID) ( PARTITION CUS_PART1 VALUES LESS THAN (100000) TABLESPACE CUS_TS01, PARTITION CUS_PART2 VALUES LESS THAN (200000) TABLESPACE CUS_TS02 )
例二åQšæŒ‰æ—‰™—´åˆ’分
CREATE TABLE ORDER_ACTIVITIES ( ORDER_ID NUMBER(7) NOT NULL, ORDER_DATE DATE, TOTAL_AMOUNT NUMBER, CUSTOTMER_ID NUMBER(7), PAID CHAR(1) ) PARTITION BY RANGE (ORDER_DATE) (
PARTITION ORD_ACT_PART01 VALUES LESS THAN (TO_DATE('01- MAY -2003','DD-MON-YYYY')) TABLESPACEORD_TS01,
PARTITION ORD_ACT_PART02 VALUES LESS THAN (TO_DATE('01-JUN-2003','DD-MON-YYYY')) TABLESPACE ORD_TS02,
PARTITION ORD_ACT_PART02 VALUES LESS THAN (TO_DATE('01-JUL-2003','DD-MON-YYYY')) TABLESPACE ORD_TS03
)
例三åQšMAXVALUE
CREATE TABLE RangeTable ( idd INT PRIMARY KEY , iNAME VARCHAR(10), grade INT ) PARTITION BY RANGE (grade) ( PARTITION part1 VALUES LESS THEN (1000) TABLESPACE Part1_tb, PARTITION part2 VALUES LESS THEN (MAXVALUE) TABLESPACE Part2_tb );
CREATE TABLE emp ( empno NUMBER (4), ename VARCHAR2 (30), sal NUMBER ) PARTITION BY HASH (empno) PARTITIONS 8 STORE IN (emp1,emp2,emp3,emp4,emp5,emp6,emp7,emp8);
create table dinya_test ( transaction_id number primary key, item_id number(8) not null, item_description varchar2(300), transaction_date date ) partition by range(transaction_date)subpartition by hash(transaction_id) subpartitions 3 store in (dinya_space01,dinya_space02,dinya_space03) ( partition part_01 values less than(to_date(‘2006-01-01’,’yyyy-mm-dd’)), partition part_02 values less than(to_date(‘2010-01-01’,’yyyy-mm-dd’)), partition part_03 values less than(maxvalue) );
create or replace procedure abin55(abing in varchar2,abin out sys_refcursor) as begin declare createtime date:=to_date(abing,'yyyy:MM:dd HH24:MI:SS'); cursor mycur is select * from abing1 t where t.createtime=createtime; abin mycur%rowtype; begin open mycur; loop fetch mycur into abin; exit when mycur%NOTFOUND; end loop; close mycur; end; end;
建立历å²è¡¨ï¼š create table emp_his as select * from emp where 1=2
建立oracle触å‘器: create or replace trigger tri_del_emp before delete on emp for each row begin insert into emp_his(id,ename,empno,salary,deptno,createtime) values (:old.id,:old.ename,:old.empno,:old.salary,:old.deptno,:old.createtime); end;
create or replace function getabin(abin in varchar2) return varchar2 is result varchar2(50); sqlcode2 nvarchar2(500):=''; sqlerrm2 nvarchar2(500):=''; myexception nvarchar2(500):=''; exception1 exception; begin if(abin is not null) then select count(1) into result from bing1 t where t.name1 like abin; return(result); elsif(abin is null) then result:='there is a defined exception'; raise exception1; end if;
exception when exception1 then sqlcode2:=sqlcode; sqlerrm2:=sqlerrm; begin insert into oracleexception(id,createtime,sqlcode1,sqlerrm1,myexception) values (sys_guid(),sysdate,sqlcode2,sqlerrm2,'exception1'); commit; end; return(result); when others then result:='there is a other exception'; sqlcode2:=sqlcode; sqlerrm2:=sqlerrm; begin insert into oracleexception(id,createtime,sqlcode1,sqlerrm1,myexception) values (sys_guid(),sysdate,sqlcode2,sqlerrm2,'others'); commit; end; return(result); end;
‹¹‹è¯•oracle--function代ç åQ?/p>
declare ename varchar2(50):=''; result varchar2(50); begin result:=getabin(ename); dbms_output.put_line(result); end;
]]>我写的oracle functionhttp://www.aygfsteel.com/stevenjohn/archive/2012/08/12/385325.htmlabinabinSun, 12 Aug 2012 13:01:00 GMThttp://www.aygfsteel.com/stevenjohn/archive/2012/08/12/385325.htmlhttp://www.aygfsteel.com/stevenjohn/comments/385325.htmlhttp://www.aygfsteel.com/stevenjohn/archive/2012/08/12/385325.html#Feedback0http://www.aygfsteel.com/stevenjohn/comments/commentRss/385325.htmlhttp://www.aygfsteel.com/stevenjohn/services/trackbacks/385325.htmlcreate or replace function getBin return varchar2 is result varchar2(50); begin select count(1) into result from bing1; return(result); end;
‹¹‹è¯•代ç åQ?br />declare result varchar2(50); begin result:=getBin; dbms_output.put_line(result); end;
oracle函数二: create or replace function getBin3(ename in varchar2) return varchar2 is result varchar(50); begin select count(1) into result from bing1 t where t.name1 like '%'||ename||'%'; return(result); end;
‹¹‹è¯•代ç 二: declare result varchar2(50); ename varchar2(10):='a'; begin result:=getBin3(ename); dbms_output.put_line(result); end;