对于oracle的操作;
1。有时,我们为了实现某种功能,在oracle中,写一些函数,然后在业务操作中,拼接sql语句中,调用该函数;
但是如果直接在oracle中写函数,反而有点不容易,我们可以使用pl/sql中,继承的对函数操作的界面工具;
=>找到functions文件夹,然后新建一个,然后使用text进行测试方可;
如下函数,是为了实现将一个序列实现的自增长的数据,组合成7为数字; 如果不足7位,则补零;0000003 ;
create or replace function fn_get_Personid -- 个人信息采集:获取7位的id值(id in varchar2 -- 无用) return varchar2 is t_id varchar2(10); -- 要返回的信息Idbegin select SEQ_HR_PERSON_ID.Nextval into t_id from dual; -- 查询序列 if length(t_id)=6 then t_id:='0'||t_id; elsif length(t_id)=5 then t_id:='00'||t_id; elsif length(t_id)=4 then t_id:='000'||t_id; elsif length(t_id)=3 then t_id:='0000'||t_id; elsif length(t_id)=2 then t_id:='00000'||t_id; elsif length(t_id)=1 then t_id:='000000'||t_id; end if; return(t_id); -- 返回处理后的数据end fn_get_Personid;
?
?2.?在oracle中,不存在关键字identity实现自增长,我们可以为每个表单独创建一个序列; 实现自增长;当然,我们仍然不必手写代码,pl/sql已经集成该功能; 找到sequences 文件夹,然后右键新建方可;
-- Create sequence create sequence SEQ_HR_PERSON_IDminvalue 1maxvalue 9999999999999999start with 74increment by 1cache 20;
?
3.当然,对于触发器、存储过程、游标,我们也可以借助pl/sql进行操作,比手写方便的多;
4.对于在oracle中,我们顶多创建主键、默认; 我们不特意的指定外键 ;? 在我们创建表时,为每个表都添加一个特殊的列,用于对该列的注释;
5.我们使用了pl/sql,我们不用去修改代码,直接就是用select * from one for update ,进行信息的修改方可;
6.对于一个有数据的列,我们可以添加一列可为空的列且有默认值的列!? -》验证是否可以添加可为空的列!
7.如果我们使用pl/sql连接局域网内的oracle,则我们需在oracle的安装文件进行配置:
E:\oracle\ora92\network\admin\tnsnames.ora 中添加:
?
?
zch1 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.101)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = zch) ) )
?
?
这样,我们再pl/sql中,方可找到指定的数据库,然后根据指定的用户名,进行登录控制!
?8. oracle中的sql代码,将一个数字,转义为汉字的方法 ;
Decode(B.D401_STATU,'0','未采集','1','采集',B.D401_STATU)
如果B.D401_STATU == '0' ,则返回'未采集' ;
如果B.D401_STATU == '1 ,则返回'采集' ;
否则返回B.D401_STATU
?
?