oracle常用语句

给用户解锁
Alter user scott account unlock;

修改用户密码
Alerter user scott identified by tiger;

查询某个字段为空
select * from sys_menu  where  parent_id is  null

查询某个字段不为空
select * from sys_menu  where  parent_id is not null

拼接
select t.url||','||t.relation_url , t.rowid from sys_menu t

获取表名,列名,列注释
select TABLE_NAME,COLUMN_NAME,COMMENTS FROM USER_COL_COMMENTS where TABLE_NAME='YYXXB';
获取表名,表的注释
SELECT table_name,comments FROM user_tab_comments WHERE table_name='YYXXB';

修改表的列名      
alter table 表名 rename column 旧列名 to 新列名;
/*修改原字段名*/
ALTER TABLE preplan RENAME COLUMN preplan_content TO prep_content;
/*添加一个和原字段同名的字段*/
ALTER TABLE preplan ADD preplan_content  VARCHAR2(30);
/*
将原来的数据更新到新字段中
这是要注意,一定要显示进行数据类型转换(不同于MSSQL)
*/
UPDATE preplan SET preplan_content = CAST(preplan_content AS VARCHAR2(30));
/*删除原来的备份字段*/
ALTER TABLE preplan DROP COLUMN prep_content;

#增加表字段
alter table AA add AGE VARCHAR2(32) default 'AAAA' not null;
alter table AA add(XX number,yy varchar2(10));
#修改字段名
ALTER TABLE AA RENAME COLUMN YY TO ZZ;

#修改表字段类型
alter table AA modify AGE date;
alter table AA modify (AGE VARCHAR2(10))

#修改默认值,修改default值时,只有在新增加数据时,才会体现出来
alter table AAAA modify (NAME1 default 'AAAA');
alter table AAAA modify (NAME1 default null);
修改是否为空
alter table AAAA modify (NAME1  null);
去除主键
alter table AAAA drop primary key;
alter table AAAA modify (UUID primary key);
去除chek
alter table AAAA drop constraint SYS_C0018001;

#删除表字段
alter table AA drop column AGE;
#修改表名
rename AA to BB;
#创建表
create table AAAA(
UUID VARCHAR2(32) primary key,
NAME1 varchar2(32) default 'aa' not null ,
sex  varchar2(32) default '男' not null check (sex in('男','女')),//constraint chk_marital CHECK (marital_status in('S','M','D','W'))
age number,
start_time date
);

comment on table AA is '测试表';
comment on column AA.UUID is '主键';

 

 

 

 

查看oracle的版本

SELECT * FROM V$VERSION;
BANNER
-------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
PL/SQL Release 11.1.0.7.0 - Production
CORE    11.1.0.7.0      Production
TNS for 64-bit Windows: Version 11.1.0.7.0 - Production
NLSRTL Version 11.1.0.7.0 - Production
或者
a.如果输出为8位16进制数,则为32位Oracle
  SQL> select address from v$sql where rownum<2;
  ADDRESS
  --------
  578428D8
  b.如果输出为16位16进制数,则为64位Oracle
  SQL> select address from v$sql where rownum<2;
  ADDRESS
  ----------------
  000000040DFA01E0

查看oracle服务字符集

select userenv('language') from dual;

修改服务器字符集

sql> conn / as sysdba;
  sql> shutdown immediate;
  database closed.
  database dismounted.
  oracle instance shut down.
  sql> startup mount;
  oracle instance started.
  total system global area  135337420 bytes
  fixed size                          452044 bytes
  variable size                     109051904 bytes
  database buffers              25165824 bytes
  redo buffers                      667648 bytes
  database mounted.
  sql> alter system enable restricted session;
  system altered.
  sql> alter system set job_queue_processes=0;
  system altered.
  sql> alter system set aq_tm_processes=0;
  system altered.
  sql> alter database open;
  database altered.
  sql> alter database character set internal_use ZHS16GBK;
  sql> shutdown immediate;
  sql> startup;

如何查询dmp文件的字符集

用oracle的exp工具导出的dmp文件也包含了字符集信息,dmp文件的第2和第3个字节记录了dmp文件的字符集。如果dmp文件不大,比如只有几M或几十M,可以用UltraEdit打开(16进制方式),看第2第3个字节的内容,如0354,然后用以下SQL查出它对应的字符集:
SQL> select nls_charset_name(to_number('0354','xxxx')) from dual;
ZHS16GBK

如果dmp文件很大,比如有2G以上(这也是最常见的情况),用文本编辑器打开很慢或者完全打不开,可以用以下命令(在unix主机上):
cat a.dmp |od -x|head -1|awk '{print $2 $3}'|cut -c 3-6 (试验成功,是用来查看上面的0354)
然后用上述SQL也可以得到它对应的字符集。

查询oracle client端的字符集

在windows平台下,在注册表里面相应OracleHome的NLS_LANG。
比如: set nls_lang=AMERICAN_AMERICA.ZHS16GBK
这样就只影响这个窗口里面的环境变量。
我是配置的环境变量  NLS_LANG   AMERICAN_AMERICA.ZHS16GBK 效果一样
 在unix平台下,就是环境变量NLS_LANG。
$echo $NLS_LANG
AMERICAN_AMERICA.ZHS16GBK
如果检查的结果发现server端与client端字符集不一致,请统一修改为同server端相同的字符集。

 

无法删除当前已连接的用户"的解决方法 :解决办法!!!

删除用户A
SQL> select username,sid,serial# from v$session where username='A';

USERNAME                              SID    SERIAL#
------------------------------ ---------- ----------
A                                    2079        193
A                                    2114         17
A                                    2153          9
SQL> alter system kill session'2079,193';

System altered
SQL> alter system kill session'2114,17';

System altered
SQL> alter system kill session'2153,9';

System altered
SQL> DROP USER A CASCADE;

User dropped

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值