您的位置:首页 > 数据库 > Oracle

ORACLE 笔记

2016-06-14 23:57 447 查看

001、空字符的用法

建立表如下:Create table T_N (F_ID VARCHAR2(2));

插入空字符:Insert into T_N Values (CHR(32));

查询表内容:Select * from T_N;得到一个空字符组成的记录,而不是NULL。

另外一种方法是:

Select CHR(32) From T_N;

注意必须有一张表作为 From 的内容,这个和SQL Server是有差别的。

002、日期显示的设置

ORACLE 的 DATE 类型的显示方式取决于 NLS_DATE_FORMAT 初始化参数的设置, 可以设置为:

1、数据库级别:如果希望所有人都看到某种格式的数据。

ALTER SYSTEM SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';

2、SESSION级别:如果只是希望自己看到某种格式而不影响其他人看到的结果,则设置为:

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';

注意只是当前登录状态有效。

003、日期转换语句

TO_DATE('2016-06-07 14:54:23','YYYY-MM-DD HH24:MI:SS')
TO_DATE('2016-06-07','YYYY-MM-DD')

004、赋值方法

SELECT 0,0,0,0 INTO I ,J, K, M FROM DUAL;
可以实现同时给多个变量赋值.

005、输出执行SQL的中间结果

SET SERVEROUTPUT ON;
BEGIN
DBMS_OUTPUT.PUT_LINE('可以看到输出的结果了');
END;

006、可以这样定义变量

DECLARE  
  I NUMBER;J NUMBER;   
BEGIN  
  SELECT 1,2 INTO I,J FROM DUAL;  
  DBMS_OUTPUT.PUT_LINE('可以看到输出的结果了');  
  DBMS_OUTPUT.PUT_LINE(I+J);  
END;
/
得到:  
可以看到输出的结果了  
3

007、判断字符串位置

关于 Oracle 中字符串函数的使用
INSTR,LENGTH,LEAST,GREATEST,SUBSTR,REPLACE

SELECT INSTR('AA:BB',':') FROM DUAL;
SELECT INSTR('ABCDABCDAEF', 'AB',3) FROM DUAL;    -- 返回结果是:5,从3开始查找AB
SELECT INSTR('ABCDABCDAEF', 'AB') FROM DUAL;      -- 返回结果是:1,因为instr字符串索引从1开始,所以是1不是0
SELECT INSTR('ABCDABCDAEF', 'DA',1,2) FROM DUAL; -- 返回结果是:8,返回第二次出现'DA'的位置

008、获得字符串长度

SELECT LENGTH('AAAA') FROM DUAL;

009、求取给定参数中最小值

SELECT Least(21,25,45,5,8) FROM DUAL;

010、求取给定参数中最大值

SELECT Greatest(21,25,45,5,8) FROM DUAL;

011、截取字符串

SELECT SUBSTR('ABCDEFG', 1, 3)   FROM DUAL;  -- 返回结果是:ABC,从1位开始往后截取3个字符长度
SELECT SUBSTR('ABCDEFG', 0, 3)   FROM DUAL;  -- 返回结果是:ABC,从1位开始往后截取3个字符长度
SELECT SUBSTR('ABCDEFG', 1)      FROM DUAL;  -- 返回结果是:ABCDEFG,从0位开始截取后面所有
SELECT SUBSTR('ABCDEFG', -3)     FROM DUAL;  -- 返回结果是:EFG,如果是负数,则从尾部往前数,截取-3位置往后的所有字符串
SELECT SUBSTR('ABCDEFG', 1,100) FROM DUAL;  -- 返回结果是:ABCDEFG,虽然100超出了元字符串长度,但是系统会按元字符串最大数量返回,不会影响返回结果

012、替换字符串:replace

SELECT REPLACE('ABCDEFG', 'CDE', 'cde') FROM DUAL;  -- 返回结果是:ABcdeFG
SELECT REPLACE('ABCDEFG', 'CDE', '') FROM DUAL;     -- 返回结果是:ABFG,CDE被替换成空字符
SELECT REPLACE('ABCDEFG', 'CDE') FROM DUAL;         -- 返回结果是:ABFG,当不存在第三个参数时,CDE直接被删掉

013、查看scott用户的默认表空间、临时表空间  

select username,default_tablespace,temporary_tablespace
from dba_users
where upper(username) IN ('PAUL','JWSOFT_DZSW');

select username,privilege,admin_option
from user_sys_privs
where upper(username) IN ('PAUL','JWSOFT_DZSW','SCOTT');

014、测试

CREATE OR REPLACE PROCEDURE P_GETN is

uC CHAR(1);
uD VARCHAR2(20);
BEGIN
uC := '''';
EXECUTE IMMEDIATE 'SELECT 1252 FROM DUAL' INTO uD;
DBMS_OUTPUT.PUT_LINE(uD||uC);
END P_GETN;

015、四色五入

<pre name="code" class="sql">SQL>
SQL> SELECT
2    1 序号,TRIM(TO_CHAR(58.9462,'999.99'))||'%' 格式化,ROUND(58.9462,2) 四舍五入,TRUNC(58.9462,2) 截断
3  FROM DUAL
4  UNION
5  SELECT
6    2 序号,TRIM(TO_CHAR(58.9442,'999.99'))||'%' 格式化,ROUND(58.9442,2) 四舍五入,TRUNC(58.9462,2) 截断
7  FROM DUAL
8  UNION
9  SELECT
10    3 序号,TRIM(TO_CHAR(58.9042,'999.99'))||'%' 格式化,ROUND(58.9042,2) 四舍五入,TRUNC(58.9062,2) 截断
11  FROM DUAL
12  ORDER BY 序号;
序号 格式化     四舍五入       截断
---------- -------- ---------- ----------
1 58.95%        58.95      58.94
2 58.94%        58.94      58.94
3 58.90%         58.9       58.9

SQL>



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: