oracle 技术支持

1. 在sql*plus中修改当前会话的日期格式
alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';

 2. navicat连接oracle,出现Navicat for Oracle Cannot load OCI DLL

工具--->选项--->设置--->oci路径即可, 笔者此处D:\oracle\product\11.2.0\dbhome_1\bin\oci.dll
2.1、sqlplus连接远程数据库
语法:sqlplus usr/pwd@//host:port/sid
example: sqlplus tmmu/wq752341@//10.10.192.100:1521/ORCL

2.2、修改oracle占用内存(不要太少,否则会启动失败)

在默认安装情况下,oracle的内存分配是按系统内存的大小比例分配的,内存比较大的情况下,oracle所占的内存也大,该情况下,我们一般要修改sga值来减少系统中oracle的内存过大问题。
 用dba身份进入oracle,笔者在plsql中对数据库进行管理:

show parameter sga; --显示内存分配情况

alter system set sga_max_size=200m scope=spfile; --修改占用内存的大小
shutdown; --关闭
startup; --启动

3. ALTER

ALTER TABLE (表名) ADD (列名 数据类型);
ALTER TABLE (表名) MODIFY (列名 数据类型);
ALTER TABLE (表名) RENAME COLUMN (当前列名) TO (新列名);
ALTER TABLE (表名) DROP COLUMN (列名);
ALTER TABLE (当前表名) RENAME TO (新表名);

3.1 修改varchar2 2 clob

--技巧就在于中间的temp字段容器。
alter table 表名 add 临时字段名 clob;
update 表名 set 临时字段名 = 待改动字段名;
alter table 表名 drop column 待改动字段名; 
alter table 表名 rename column 临时字段名 to 待改动字段名;

查看表,字段,以及主键

在Oracle中查看所有的表: 

select * from tab/dba_tables/dba_objects/cat;
 
看用户建立的表 :  
select table_name from user_tables;  //当前用户的表  sequence_name from user_sequences    view_name from user_views
select table_name from all_tables;  //所有用户的表 
select table_name from dba_tables;  //包括系统表 
select * from user_indexes //可以查询出所有的用户表索引
查所有用户的表在all_tables 
主键名称、外键在all_constraints 
视图 all_views
序列 all_sequences 索引在all_indexes 但主键也会成为索引,所以主键也会在all_indexes里面。
具体需要的字段可以DESC下这几个view,dba登陆的话可以把all换成dba
 
1、查找表的所有索引(包括索引名,类型,构成列):
select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and t.table_name = i.table_name and t.table_name = 要查询的表
 
 
2、查找表的主键(包括名称,构成列):
select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'P' and au.table_name = 要查询的表
 
3、查找表的唯一性约束(包括名称,构成列):
select column_name from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'U' and au.table_name = 要查询的表
 
4、查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询):
select * from user_constraints c where c.constraint_type = 'R' and c.table_name = 要查询的表
 
查询外键约束的列名:
select * from user_cons_columns cl where cl.constraint_name = 外键名称
查询引用表的键的列名:
select * from user_cons_columns cl where cl.constraint_name = 外键引用表的键名
5、查询表的所有列及其属性, 注意表名要大写
select t.*,c.COMMENTS from user_tab_columns t,user_col_comments c where t.table_name = c.table_name and t.column_name = c.column_name and t.table_name = 要查询的表

以前的笔记

Oracle熟记
    写完语句之后一定要commit,才能访问。
登录
    sqlplus sys/tiger as sysdba

用户管理
1.    内置用户
1)    sys/tiger
2)    scott/tiger
2.    changeUserInfo
3.    createDropUser
1)    createNewUser
a.    create user hzm identified by tiger default tablespace users quota 10M on users
b.    分配权限 -- grant create session, create table, create view to hzm
2)    dropUser
a.    drop user hzm 
3)    export & import 
a.    exp; 然后一路默认(在导出文件的保存路径位当前dos窗口目录)
b.    imp; 导入
4.    changeUser
1)    conn scott/tiger
2)    conn sys/hzm as sysdba
5.    给用户授予创建视图的权限
1)    grant create table, create view to scott;
6.    查看当前用户
1)    show user
7.    解除用户锁定
1)    alter user scott account unlock;

创建
1.    创建库(oracle没有库的概念)
2.    创建表
3.    创建视图
4.    创建索引
5.    创建sequence

内置表
1.    内置普通表 emp, dept, salgrade, dual

常用操作
1.    查看表结构: desc 表名          eg: desc emp
2.    将上一条语句写入文件中: ed
3.    执行afiedt.buf中的语句:    /
4.    单表复制: create table emp2 as select * from emp
5.    回退操作:rollback
6.    提交操作:commit
7.    查询当前有哪些表:select table_name from user_tables;
8.    查询视图:select view_name from user_views;
原文地址:https://www.cnblogs.com/hzm112567/p/2879499.html