Oracle 常用SQL

-----------oracle清空一个用户下的所有表数据------------------------------------------
begin
for x in (select table_name from user_tables) loop
execute immediate 'delete ' || x.table_name ;
end loop ;
end ;

----------------------------给用户授权-----------------------------------------------------
GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,CREATE SESSION TO 用户名
*******************************************************************
grant execute any procedure to 用户名
grant insert any table to 用户名;
grant select any table to 用户名;
grant update any table to 用户名;
grant delete any table to 用户名;
grant unlimited tablespace to 用户名;
grant create any view to 用户名;

----------------------------------FUNC_NEWID(产生新的主键Id函数)---------------------------

create or replace function FUNC_NEWID(rn number) return varchar2 is
Result varchar2(20);
begin
Result := to_char(sysdate,'yyyymmddhh24miss')||(substr((rn+1000000)||'',2));
return(Result);
end FUNC_NEWID;

----------------------------------------------------------查看字符集编码------------------------------------
select nls_charset_name(to_number('0354','xxxx')) from dual;

-------------------------------------------------------把某个列的值拼接到一个字段并用逗号隔开--------

SELECT listagg(T.JH, ',')WITHIN GROUP ( order by T.JH) AS jh ,---Oracle 将某列的值拼接成一个字段用逗号隔开
COUNT(T.JH) AS JC,T.PCODE, T.EXCEPTIONDECODE, T2.NAME, T1.EJDWID,T1.EJDW_NAME
FROM CSEXCEPTIONINFO T, HX_DD01 T1, CSEXCEPTIONITEM T2
WHERE T.JH = T1.JH AND T.STATE = '4' AND T.EXCEPTIONDECODE = T2.CODE
GROUP BY
T.PCODE, T.EXCEPTIONDECODE, T2.NAME,T1.EJDWID,T1.EJDW_NAME
ORDER BY decode(PCODE,'yj000','yj999',PCODE) ASC ---将pcode 的值为yj000的放到最后的位置

原文地址:https://www.cnblogs.com/auldlangsynezh/p/7918829.html