Oracle基础语法

1、把vachar转换为number类型,去除掉非法字符:

TO_NUMBER(REGEXP_REPLACE(字段名,'[^0-9]',''))

2.获取当前年份:

to_char(sysdate,'yyyy')

3.截取年份月份:

to_char(时间字段,'yyyy-mm-dd hh:mm:ss')

4.如果字段的值为空返回0,不是空返回字段的值

CASE WHEN t2.Score IS NULL THEN 0 ELSE t2.Score END

5.取四舍五入并保留四位

select round(column_name, 4) from table_name;

6.保留四位小数,只舍:

select trunc(column_name, 4) from dual;

7.substr函数的用法,取得字符串中指定起始位置和长度的字符串 ,默认是从起始位置到结束的子串:

 substr( string, start_position, [ length ] )       //substr('目标字符串',开始位置,长度)

8.截取字符串

substr(字符串,-10

9.时间转换:

select to_date('2003-10-17 21:15:37','yyyy-mm-dd hh24:mi:ss') from dual  
select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;

10.去重

select count(distinct ear_tag) from nc_basic_information

11.正则分割:

   SELECT REGEXP_SUBSTR('ABCD+北京市朝阳区富贵小区3号楼1单元101+100000+平邮', '[^+]+', 1, 1),
       	REGEXP_SUBSTR('ABCD+北京市朝阳区富贵小区3号楼1单元101+100000+平邮', '[^+]+', 1, 2),
       REGEXP_SUBSTR('ABCD+北京市朝阳区富贵小区3号楼1单元101+100000+平邮', '[^+]+', 1, 3),
       REGEXP_SUBSTR('ABCD+北京市朝阳区富贵小区3号楼1单元101+100000+平邮', '[^+]+', 1, 4)
FROM   DUAL

12.拼接

SELECT CONCAT('工号:','aaa') FROM dual;

13.根据一个字段相同拼接另一个字段为一条数据

SELECT BUDGETPROJECTID, LISTAGG(DistributionName, ',') 
WITHIN GROUP (ORDER BY BUDGETPROJECTID) AS DistributionName
FROM T_BudgetProject_Reduce
GROUP BY BUDGETPROJECTID

14.plsql执行sql文件
1、File > New > Command Windows(左上角文件>新建>命令窗口)
2、第三步输入 @ 符号,之后敲击回车键。从本地选择执行的SQL脚本。
3、要想批量执行sql脚本,可以新建一个文本,使用@拼接本地路径。如下图:all.sql
Oracle基础语法_第1张图片

15、删除表空间

--删除表空间
drop user BDC_JOB cascade;
DROP TABLESPACE BDC_JOB INCLUDING CONTENTS AND DATAFILES;

一、在还原Oracle某个用户的数据之前应把该用户及其已有的数据删掉,然后新建同名的用户并指定对应的表空间、临时空间等,并授权。但在删除该用户时提示“无法删除当前已连接的用户”,该问题的解决方案如下:
--1、先将待删除用户锁定
alter user XDBH account lock;
--2、查询该用户已连接的回话
select username,sid,serial# from v$session where username='XDBH';  
--查询结果:
--USERNAME SID SERIAL#
--XDBH	927	25285
--XDBH	1974	31863
--XDBH	2405	18931
--3、然后基于语句alter system kill session 'xx,xxx'来关闭对应的回话,xx,xxx分别代表查询出来的sid和serial#
alter system kill session '927,25285'

16、ORA-01144: 文件大小 (13107200 块) 超出 4194303 块的最大数

--创建bdc_job表空间
CREATE TABLESPACE BDC_JOB
  LOGGING
  DATAFILE 'E:\OracleData\BDC_JOB.DBF' SIZE 512M
  AUTOEXTEND
  ON NEXT 256M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL
  SEGMENT SPACE MANAGEMENT AUTO;

--创建bdc_job用户  
CREATE USER BDC_JOB PROFILE "DEFAULT"
     IDENTIFIED BY "sa123" DEFAULT TABLESPACE "BDC_JOB"
     TEMPORARY TABLESPACE "TEMP"
     ACCOUNT UNLOCK;

--增大内存
  alter tablespace BDC_JOB add datafile 'E:\OracleData\BDC_JOB01.DBF' size 30g; 
  alter tablespace BDC_JOB add datafile 'E:\OracleData\BDC_JOB02.DBF' size 30g; 
  alter tablespace BDC_JOB add datafile 'E:\OracleData\BDC_JOB03.DBF' size 30g; 

你可能感兴趣的:(oracle,数据库,sql)