-----SEQ_TRANSPORT_PRODUCT 序列名;
-----从1000开始自增 每次自增1
CREATE SEQUENCE SEQ_TRANSPORT_PRODUCT
minvalue 1
maxvalue 999999999
start WITH 1000
INCREMENT by 1
nocache
nocycle;
----- SEQ_ENUMERATE.nextval 序列名.nextval
INSERT INTO ENUMERATE ( "ID", "ENUM_TYPE", "ENUM_VALUE", "ENUM_ORDER", "DESCRIPTION" )
VALUES
( SEQ_ENUMERATE.nextval, 'TransportProductArea', 'D', NULL, NULL );
----当前的数据库连接数
SELECT count(*) FROM v$process;
----数据库允许的最大连接数
SELECT value FROM v$parameter where name = 'processes';
----修改最大连接数 300
alter system set processes = 300 scope = spfile;
----先根据条件查出 目的表的id 以及需要的对应字段值
----通过id关联 批量更新
merge into FEE_BILL fee
using (
SELECT fb.ID,substr(wm_concat(DISTINCT ac.BILL_CODE),0,159) billCode
from FEE_BILL fb
LEFT JOIN ACCOUNT_BOOK ac on fb.id=ac.FEE_BILL_ID
LEFT JOIN ORGANIZATION_UNIT org on fb.BALANCE_ORG_UNIT_ID= org.id
where org.name='JUSDA INDIA SO'
GROUP BY fb.ID) ac
on (fee.id=ac.id)
when matched then
update set fee.BILL_CODES = ac.billCode;
5.创建函数—自定义函数 调用函数的方式使查询SQL执行更快
create or replace FUNCTION getConsignersByShipmentId(v_id in number) RETURN VARCHAR2 as CONSIGNORS VARCHAR2(255);
cnts number :=0;
BEGIN
SELECT
listagg( pro.FULL_NAME,'@@') WITHIN group(order by tab.id) into CONSIGNORS
FROM
TMS_WAY_BILL tab
LEFT JOIN BUSINESS_ORGANIZATION pro on pro.id=tab.CONSIGNOR_ID
WHERE
tab.id IN ( SELECT MAX( ab.id ) FROM TMS_WAY_BILL ab WHERE ab.SHIPMENT_ID = v_id GROUP BY ab.CONSIGNOR_ID )
AND ROWNUM < 6 ;
SELECT count(MAX( ab.id )) into cnts FROM TMS_WAY_BILL ab WHERE ab.SHIPMENT_ID =v_id GROUP BY ab.CONSIGNOR_ID;
if (cnts>5) then CONSIGNORS := CONSIGNORS || '@@...' ;end if;
return (CONSIGNORS);
end getConsignersByShipmentId;
----函数使用 : from 后可查询任意表
select getConsignersByShipmentId(12456) from dual;
-----ZG_TRANSPORT_FILE_VIEW 视图名
create or replace view ZG_TRANSPORT_FILE_VIEW as
相关查询语句 ;
----查看数据库中被锁的表
SELECT b.owner,b.object_name,a.session_id,a.locked_mode
from v$locked_object a,dba_objects b WHERE b.object_id=a.object_id;
----查看被锁的进程
SELECT b.username,b.sid,b.serial#,logon_time
from v$locked_object a,v$session b where a.session_id=b.sid order by b.logon_time;
----杀死进程 例如 kill session '2841,27159'
alter system kill session 'sid,serial#';
----第一个和最后一个%作为通配符,中间的%作为普通字符。
select * from a WHERE name LIKE '%aa/%bb%' ESCAPE '/';
----用于返回 9条以逗号分隔的编码字符串
SELECT ZH_CONCAT(tab.billCode)
FROM AccountBook tab
WHERE tab.id in (
SELECT MAX(ab.id) FROM AccountBook ab
WHERE ab.feeBill.id = :feeBillId GROUP BY ab.billCode
) AND ROWNUM < 10
decode(t.sex, '1', '男生', '2', '女生', '其他');
----decode中使用decode
decode(sign(sal - 5000),1,'高薪',0,'高薪',-1,decode(sign(sal - 3000), 1, '中等', 0, '中等', -1, '低薪'));
nvl2(出生地,'已知','未知')
sign(t.age - 20)
----返回0 未找到
----返回结果!=0 找到且返回结果为字符串位置
instr( 'abhch', 'a' ) --返回1
to_date('2010-11-16 10:48:59','YYYY-MM-DD HH:MI:SS')
SELECT [星期一],[星期二],[星期三],[星期四],[星期五],[星期六],[星期日]
FROM WEEK_INCOME
PIVOT
(
SUM(INCOME) for [week] in([星期一],[星期二],[星期三],[星期四],[星期五],[星期六],[星期日])
)TBL ------别名,重要!!!