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';