oracle常用内容
来源:互联网 发布:咪娜的双重生活知乎 编辑:程序博客网 时间:2024/04/29 07:12
类型:char,nchar,varchar2(),nvarchar2,number(),date,blob(binary二进制流的大对象),clob(文件大对象)。
NVL函数 用于处理空值的影响 NVL(salary,0)
escape定义转义字符 where name like 'S\_%' escape '\'
lower函数
upper函数
initcap函数 首字符大些
concat函数 连接字符串 等效于||
substr函数 切割字符串
length函数
round函数四舍五入
trunc函数 截取,不管后面数字 trunc(5.3266,3)
to_char函数 格式转换
to_date
to_number
avg
count
max
min
sum
等值连接
自连接
外连接 a.id=b.id(+) b表补空
创建表 create table 用户.表名 (字段名, 字段类型 约束条件);
主键约束 create table a( c number primary key )列级主键约束 create table a (c number,primary key(c))表级约束 create table a(c number constraints pkc1 primary key)
外键约束 create table b(d number primary key ,c1 number references a(c)); 列约束 create table b(d number primary key,c1 number, foreign key(c1) references a(c));表约束
not null
check
查看表约束 desc user_constraints; select constraint_name,constraint_type from user_constraints where table_name='s_EMP'
查看列约束 desc user_cons_columns; select column_name,position from user_cons_columns where constraint_type=‘R’ and table_name='a'
rownum分页显示
创建索引 create index 索引名 on 表(字段)
set transaction
编号自动增加 创建序列 create sequence check_no_seq nocycle maxvalue 9999999999 start with 2; 建立触发器 create or replace trigger set _checkup_no before insert on checkup_history for each row declare next_checkup_no number; begin --get the next checkup number from the sequence select check_no_seq.nextval into next_checkup_no from dual;
create or replace procedure spaddflowdate
(
varAppTypeId in varchar2,
varFlowId in varchar2,
DateLength in number,
ReturnValue out number --返回值
)
is
begin
insert into td values(varAppTypeId,varFlowId,DateLength)
returning 1 into ReturnValue; --返回值
commit;
exception
when others then
rollback;
end;
create or replace function get_empname(v_id in number) return varchar2 as
v_name varchar2(50);
begin
select name into v_name from employee where id = v_id;
return v_name;
exception
when no_data_found then
raise_application_error(-20001, '你输入的ID无效!');
end get_empname;
--oracle连接oracle
CREATE DATABASE LINK SRMAGENCY242 CONNECT TO jztsrm identified by jztsrm2012 using
'(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.3.242)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME=SRM)
)
)'
--切割字符串
CREATE OR REPLACE TYPE TYPE_SPLIT AS TABLE OF VARCHAR2(500); --切割字符串后 字符表
CREATE OR REPLACE FUNCTION SPLIT
(
--切割字符串自定义函数
P_LIST VARCHAR2,--字符串
P_SEP VARCHAR2 := ','--切割字符
) RETURN TYPE_SPLIT PIPELINED
IS
L_IDX PLS_INTEGER;
V_LIST VARCHAR2(500) := P_LIST;
BEGIN
LOOP
L_IDX := INSTR(V_LIST,P_SEP);
IF L_IDX > 0 THEN
PIPE ROW(SUBSTR(V_LIST,1,L_IDX-1));
V_LIST := SUBSTR(V_LIST,L_IDX+LENGTH(P_SEP));
ELSE
PIPE ROW(V_LIST);
EXIT;
END IF;
END LOOP;
RETURN;
END SPLIT;
--测试
SELECT * FROM TABLE(SPLIT('1,2,3,4,5,6,',','));
/*FOR CUR_STR IN (SELECT * FROM TABLE(SPLIT('1,2,3,4,5,6,',','));)
LOOP
BEGIN
DBMS_OUTPUT.PUT_LINE (CUR_STR.COLUMN_VALUE);
END LOOP;*/
--查询分组后的最小行
SELECT FMEASUREUNIT,/* 计量单位 */FASSIGNMENTSDOWN,/* 任务量下限 */FASSIGNMENTSUP,/* 任务量上限 */FFULLOVER,/* 全额/超额 1全额 2超额 */
FAWARDMODE,/* 奖励方式 1比例 2金额 */FREWARDAMOUNT,/* 奖励额度 */FINDEX,/* 排序字段 */FISTAX,/* 是否含税 0否 1是 */FISCJER,/* 是否冲价2 0否 1是 */
FISJSCBM,/* 是否计算长编码 0否 1是 */FISQPZ,/* 是否全品种 0否 1是 */FSTARTDATE,/* 开始日期 */FENDDATE,/* 结束日期 */
FISJGLGYS,/* 是否仅关联供应商 0否 1是 */FISTCSP,/* 是否剔除商品 0否 1是 */
ROW_NUMBER() OVER (PARTITION BY FGROUP ORDER BY FINDEX) FINDEX
FROM APP_PAC_GENERALPOLICY@SRMAGENCY242 WHERE FPOLICYTYPE=1 AND FINDEX=1 AND FSTATUS=2
--重新编译无效存储过程
CREATE OR REPLACE PROCEDURE PROC_COMPILEINVALIDPROC(
P_OWNER VARCHAR2 -- 所有者名称,即 SCHEMA
) AS
--编译某个用户下的无效存储过程
STR_SQL VARCHAR2(200);
BEGIN
FOR INVALID_PROCEDURES IN (SELECT OBJECT_NAME FROM ALL_OBJECTS
WHERE STATUS = 'INVALID' AND OBJECT_TYPE = 'PROCEDURE' AND OWNER=UPPER(P_OWNER))
LOOP
STR_SQL := 'ALTER PROCEDURE ' ||INVALID_PROCEDURES.OBJECT_NAME || ' COMPILE';
BEGIN
EXECUTE IMMEDIATE STR_SQL;
EXCEPTION
WHEN OTHERS THEN NULL;
END;
END LOOP;
END PROC_COMPILEINVALIDPROC;
--查看版本及dblink信息
SELECT * FROM V$VERSION;
SELECT * FROM ALL_DB_LINKS ;
--结束会话session
select a.object_name objectname,
b.session_id,
c.serial#,
c.program program,
c.username username,
c.command,
c.machine machine,
c.lockwait
from all_objects a, v$locked_object b, v$session c
where a.object_id = b.object_id
and c.sid = b.session_id;
ALTER SYSTEM KILL SESSION '137,48863' IMMEDIATE;
--创建 定时作业
Declare SRMSJCKDATA number;
begin
dbms_job.submit(SRMSJCKDATA,'PROC_SRMHELPDATA;',TRUNC(sysdate) + 1 +20/24,'TRUNC(sysdate) + 1 +20/24');
commit;
end;
select * from user_jobs;
--dbms_job.broken()重新将broken标记为false
begin
dbms_job.broken (:job,false,next_date)
end;
- oracle常用内容
- mysql和oracle常用内容比较
- 常用内容
- 数据库(Oracle)运维工作内容及常用脚本命令
- 『ORACLE』添加glogin.sql常用内容(11g)
- cmake 常用内容
- JPA常用内容
- pro文件常用内容
- C#常用内容
- android常用内容
- 常用自定义的内容
- 集合常用内容
- git常用内容整理
- oracle常用
- 常用ORACLE
- oracle常用
- oracle常用
- oracle 常用
- 20120223雨
- Eclipse、Myeclipse编辑器最美字体
- Android Timer 更好方法
- ASIHTTPRequest 一款强大的HTTP包装开源项目
- 继成功挑战微软之后,Mozilla再次挑战行业大佬
- oracle常用内容
- 在Windows中搭建iPhone开发环境
- ASIHTTPRequest documentation
- C#连Access2007 Access2003
- ts流文件
- orcale_
- String[]类型的遍历
- C/C++学习总结(可应对面试题目)
- 子集问题