oracle常用语法-2
--创建表空间
1 2 3 4 5 | 1.查询表空间的文件路径 select * from dba_data_files 2.创建表空间 替换表空间路径文字为实际表空间路径 create tablespace bidata datafile '表空间路径\表空间文件名.dbf' size 30G autoextend on next 30M; |
--创建用户并授权
1 2 3 4 5 6 7 8 9 10 | -- Create the user create user ptjob identified by ptjob default tablespace ptjob temporary tablespace temp ; -- Grant/Revoke role privileges grant dba to ptjob; grant resource to ptjob; -- Grant/Revoke system privileges grant unlimited tablespace to ptjob; |
--字符集问题
1 | select userenv( 'language' ) from dual;<br><br>在系统环境变量中加入 NLS_LANG 及上述sql查询出的值 |
--批量修改字段长度
select 'alter table '||a.TABLE_NAME||' modify '||a.COLUMN_NAME||' varchar2(10);' from all_tab_columns a where (a.COLUMN_NAME like '%DEPT%' or a.COLUMN_NAME like '%DPCD%') AND a.OWNER ='NEWODS' and a.DATA_LENGTH<5
--增加分区
SELECT 'ALTER TABLE '||a.table_name||' ADD PARTITION PART_'||'202201'||' VALUES LESS THAN (TO_DATE(''2022-02-01 00:00:00'',''yyyy-mm-ddhh24:mi:ss''));' FROM DBA_PART_TABLES A where owner IN ('NEWODS') and table_name not like '%$%' UNION ALL SELECT 'ALTER TABLE '||a.table_name||' ADD PARTITION PART_'||'202202'||' VALUES LESS THAN (TO_DATE(''2022-03-01 00:00:00'',''yyyy-mm-ddhh24:mi:ss''));' FROM DBA_PART_TABLES A where owner IN ('NEWODS') and table_name not like '%$%' UNION ALL SELECT 'ALTER TABLE '||a.table_name||' ADD PARTITION PART_'||'202203'||' VALUES LESS THAN (TO_DATE(''2022-04-01 00:00:00'',''yyyy-mm-ddhh24:mi:ss''));' FROM DBA_PART_TABLES A where owner IN ('NEWODS') and table_name not like '%$%' UNION ALL SELECT 'ALTER TABLE '||a.table_name||' ADD PARTITION PART_'||'202204'||' VALUES LESS THAN (TO_DATE(''2022-05-01 00:00:00'',''yyyy-mm-ddhh24:mi:ss''));' FROM DBA_PART_TABLES A where owner IN ('NEWODS') and table_name not like '%$%' UNION ALL SELECT 'ALTER TABLE '||a.table_name||' ADD PARTITION PART_'||'202205'||' VALUES LESS THAN (TO_DATE(''2022-06-01 00:00:00'',''yyyy-mm-ddhh24:mi:ss''));' FROM DBA_PART_TABLES A where owner IN ('NEWODS') and table_name not like '%$%' UNION ALL SELECT 'ALTER TABLE '||a.table_name||' ADD PARTITION PART_'||'202206'||' VALUES LESS THAN (TO_DATE(''2022-07-01 00:00:00'',''yyyy-mm-ddhh24:mi:ss''));' FROM DBA_PART_TABLES A where owner IN ('NEWODS') and table_name not like '%$%' UNION ALL SELECT 'ALTER TABLE '||a.table_name||' ADD PARTITION PART_'||'202207'||' VALUES LESS THAN (TO_DATE(''2022-08-01 00:00:00'',''yyyy-mm-ddhh24:mi:ss''));' FROM DBA_PART_TABLES A where owner IN ('NEWODS') and table_name not like '%$%' UNION ALL SELECT 'ALTER TABLE '||a.table_name||' ADD PARTITION PART_'||'202208'||' VALUES LESS THAN (TO_DATE(''2022-09-01 00:00:00'',''yyyy-mm-ddhh24:mi:ss''));' FROM DBA_PART_TABLES A where owner IN ('NEWODS') and table_name not like '%$%' UNION ALL SELECT 'ALTER TABLE '||a.table_name||' ADD PARTITION PART_'||'202209'||' VALUES LESS THAN (TO_DATE(''2022-10-01 00:00:00'',''yyyy-mm-ddhh24:mi:ss''));' FROM DBA_PART_TABLES A where owner IN ('NEWODS') and table_name not like '%$%' UNION ALL SELECT 'ALTER TABLE '||a.table_name||' ADD PARTITION PART_'||'202210'||' VALUES LESS THAN (TO_DATE(''2022-11-01 00:00:00'',''yyyy-mm-ddhh24:mi:ss''));' FROM DBA_PART_TABLES A where owner IN ('NEWODS') and table_name not like '%$%' UNION ALL SELECT 'ALTER TABLE '||a.table_name||' ADD PARTITION PART_'||'202211'||' VALUES LESS THAN (TO_DATE(''2022-12-01 00:00:00'',''yyyy-mm-ddhh24:mi:ss''));' FROM DBA_PART_TABLES A where owner IN ('NEWODS') and table_name not like '%$%' UNION ALL SELECT 'ALTER TABLE '||a.table_name||' ADD PARTITION PART_'||'202212'||' VALUES LESS THAN (TO_DATE(''2023-01-01 00:00:00'',''yyyy-mm-ddhh24:mi:ss''));' FROM DBA_PART_TABLES A where owner IN ('NEWODS') and table_name not like '%$%'
ORACLE设置密码无限期
SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME' ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED
删掉有外键关联的表里数据
alter table test2 disable constraint F_TEST2; truncate table test1; alter table test2 enable constraint F_TEST2; select 'alter table '|| a.Table_Name ||' disable constraint '|| c.Constraint_Name||';' From User_Constraints a, user_Constraints b, user_Cons_Columns c, --外键表 user_Cons_Columns d --主键表 Where a.r_Constraint_Name = b.Constraint_Name And a.Constraint_Type = 'R' And b.Constraint_Type = 'P' And a.r_Owner = b.Owner And a.Constraint_Name = c.Constraint_Name And b.Constraint_Name = d.Constraint_Name And a.Owner = c.Owner And a.Table_Name = c.Table_Name And b.Owner = d.Owner And b.Table_Name = d.Table_Name; select 'alter table '|| a.Table_Name ||' enable constraint '|| c.Constraint_Name||';' From User_Constraints a, user_Constraints b, user_Cons_Columns c, --外键表 user_Cons_Columns d --主键表 Where a.r_Constraint_Name = b.Constraint_Name And a.Constraint_Type = 'R' And b.Constraint_Type = 'P' And a.r_Owner = b.Owner And a.Constraint_Name = c.Constraint_Name And b.Constraint_Name = d.Constraint_Name And a.Owner = c.Owner And a.Table_Name = c.Table_Name And b.Owner = d.Owner And b.Table_Name = d.Table_Name;
查询oracle外键
Select a.Owner 外键拥有者, a.Table_Name 外键表, c.Column_Name 外键列, b.Owner 主键拥有者, b.Table_Name 主键表, d.Column_Name 主键列, c.Constraint_Name 外键名, d.Constraint_Name 主键名 From User_Constraints a, user_Constraints b, user_Cons_Columns c, --外键表 user_Cons_Columns d --主键表 Where a.r_Constraint_Name = b.Constraint_Name And a.Constraint_Type = 'R' And b.Constraint_Type = 'P' And a.r_Owner = b.Owner And a.Constraint_Name = c.Constraint_Name And b.Constraint_Name = d.Constraint_Name And a.Owner = c.Owner And a.Table_Name = c.Table_Name And b.Owner = d.Owner And b.Table_Name = d.Table_Name;
--to_char转换数字
select rtrim(to_char(1000.00,'fm99999990.999'),'.') from dual; --1000 select rtrim(to_char(0.01,'fm99999990.999'),'.') from dual; --0.01 select rtrim(to_char(0.001,'fm99999990.999'),'.') from dual; --0.001 select rtrim(to_char(1000.01,'fm99999990.999'),'.') from dual; --1000.01
--误删数据可恢复
select * from com_fun_controls as of timestamp to_timestamp('2021-1-25 16:40:12', 'YYYY-MM-DD HH24:MI:SS') --com_fun_controls:表名 --to_timestamp('2021-1-25 16:40:12', 'YYYY-MM-DD HH24:MI:SS'):删除数据的某个时间
--跟踪SQL语句
SELECT sql_text, last_active_time,PARSING_SCHEMA_NAME FROM v$sql WHERE last_active_time > to_date('2021-04-14 15:37:00','yyyy-mm-dd hh24:mi:ss') and PARSING_SCHEMA_NAME <> 'SYS' ORDER BY last_active_time DESC;
根据起始日期和结束日期实现日期自增长的SQL语句
SELECT TO_DATE('2010-01-01','YYYY-MM-DD') + LEVEL - 1 CUR_DATE FROM DUAL CONNECT BY LEVEL <= TO_DATE('2010-02-10','YYYY-MM-DD') - TO_DATE('2010-01-01','YYYY-MM-DD') + 1
怎样查看Oracle的数据库名称sid
select * from V$database; select instance_name from V$instance;
---更改表所属表空间
SELECT 'alter table '||TABLE_NAME||' move tablespace PTJOB;' FROM USER_TABLES WHERE TABLESPACE_NAME != 'PTJOB' 修改表索引:SELECT 'alter index '|| INDEX_NAME ||' rebuild tablespace FCCMS;' FROM user_indexes; 表里包含的CLOB字段,针对Clob、Blob字段需单独做修改处理 ALTER TABLE TEST2 MOVE TABLESPACE USERS LOB(col_lob1,col_lob2) STORE AS(TABLESPACE FCCMS); 导出报错EXP-00003: 未找到段 (0,0) 的存储定义,需要在有clob、Blob字段里加一行。
--oracle查询表空间的位置
SELECT * FROM Dba_Data_Files ddf WHERE ddf.tablespace_name = 'TablespaceName';
--查询表占用的空间
SELECT segment_name "表名", segment_type "对象类型", sum(bytes) / 1024 / 1024 "占用空间(MB)" FROM dba_extents WHERE 1=1 GROUP BY segment_name, segment_type ORDER BY "占用空间(MB)" DESC;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下