oracle常用语句(长期更)

1. 建表:

create table SF_JLSF_T
(
  bh     NUMBER not null,(实体类中是private Long bh;)
  yhbh   NUMBER not null,
  jssj   VARCHAR2(20),
  fylb   VARCHAR2(60),
  jfrq   DATE default SYSDATE not null,
  jfje   NUMBER default 0 not null,
)
// Add comments to the columns 
comment on column SF_JLSF_T.bh
  is '编号';
comment on column SF_JLSF_T.yhbh
  is '用户编号';
comment on column SF_JLSF_T.jssj
  is '结算时间';
comment on column SF_JLSF_T.fylb
  is '费用类别';
comment on column SF_JLSF_T.jfrq
  is '交费日期';
comment on column SF_JLSF_T.jfje
  is '交费金额';
 2. 添加主键:
alter table SF_JLSF_T
  add primary key (BH);
3. 创建序列:
create sequence SF_JMSF_S
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
cache 20;
4. 触发器:
CREATE OR REPLACE TRIGGER SF_ZKLBH_TR
    BEFORE INSERT ON SF_ZKL_T
    FOR EACH ROW
DECLARE
    // local variables here
BEGIN
    SELECT SF_ZKL_S.NEXTVAL INTO :NEW.BH FROM DUAL;
END SF_ZKLBH_TR;
5. 给已经存在的表增加一列:
 
 
alter table 表名 add 列名 varchar(20) ;
alter table a1 add age number;

6.  给已经存在的表修改属性:

alter table SF_YHZK_T modify zkzt varchar(10) default '启用';

7. 创建DBLink:

(192.168.1.5 是其他服务器所在的IP)       

-- Create database link 
create database link QDDY
  connect to  username  identified by password 
  using '192.168.1.5:1521/oracle';

8. Oracle密码过期:

--将密码有效期由默认的180天修改成“无限制”:
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; 
--修改之后不需要重启动数据库,会立即生效。
--修改后,还没有被提示ORA-28002警告的帐户不会再碰到同样的提示;已经被提示的帐户必须再改一次密码,举例如下
sqlplus / as sysdba 
sql> alter user smsc identified by <原来的密码> ----不用换新密码 
sql> alter user system identified by root; 
sql> alter user scott identified by tiger; 
9. 存储过程调试的时候日期类型填入2017/7/29形式即可(主要是和操作系统日期右下角的格式对应)。
10. 存储过程单步调试无法进入的时候:
右键存储过程,选择ADD DEBUG INFORMATION(添加调试信息)
11. oracle用户被锁定the account is locked的解决办法:
ALTER USER CHARGE_TAIDA ACCOUNT UNLOCK;
ALTER USER CHARGE_TAIDA IDENTIFIED BY CHARGE_TAIDA;
12. Oracle的SQL中
<> 
!= 
~= 
^=

都是不等于的意思。但是记住:null只能通过is null或者is not null来判断,其它操作符都会过滤掉null的数据。 

13. SQLCODE和SQLERRM关键词:

EXCEPTION
  when errorException then
       errorCode := SQLCODE;  
       errorMsg := SUBSTR(SQLERRM, 1, 200);
       dbms_output.put_line(errorCode || ',' || errorMsg);   
  WHEN OTHERS THEN    
    errorCode := SQLCODE;  
    errorMsg := SUBSTR(SQLERRM, 1, 200); 
    dbms_output.put_line(errorCode || ',' || errorMsg); 
    V_RESULT     := -1;
    V_RESULT_MSG :=errorMsg;-- '调用存储过程发生异常';
    ROLLBACK;
END;
14. oracle中函数编译无报错信息时,可通过以下语句查询:
select * from SYS.USER_ERRORS where NAME = <object_name> and type = <object_type>
--记住这里的参数都要大写即可,如:
select * from SYS.USER_ERRORS where NAME = 'SF_GETYHBM_DY_F';



猜你喜欢

转载自blog.csdn.net/ptsx0607/article/details/80259090