关于oracle数据库在工作中遇到的一些实用性解决办法

那就先从最基础的建表说起吧

一.工作中遇到设计好的表如何落库

 1.plsq这个软件先安装好,然后根据服务器地中连,上怎么连直接上图

 看到途中的三个要填写的,我举个例子,不然有点空是吧

举例

用户名 :zhangsan

密码: 123456

地址 jdbc:oracle:thin:@//127.0.0.1:8016/tdus   //你看这是我随便写的地址其中thin是数据库连接方式,tdus是数据库名。

二,然后说一下Oracle建库

找到对应数据库table右键新建一个表

1.开始说正题,建表我们可能遇到id要自增主键设置,这个咱们先建一个自增序列,这就提一下mysal、的不一样的地方,mysql直接指定自增就行但Oracle要自己建序列

2.说一下序列如何建上图

你看这个图,sequences这个右键新建,打开后填写参数,我直接给你一组参数  1 ,999999999,1,1,20  拿去用哈哈之后

在表id那个默认疼数值处填进取这个 "WW"."SEQ_USER"."NEXTVAL"   其中SEQ_USER是自增序列,WW是你数据库名字后边那个表示值。

3.自增说完说一下主键,这个简单直接sql语句解决

ALTER TABLE employees

ADD CONSTRAINT emp_id_pk PRIMARY KEY (id);  这其中 employees 表明,emp_id_pk是主键标识,你可以理解为每张表指定主键都需要给主键取个名

4. 那我们开发中会遇到一个问题,给数据库新增数据然后直接拿到自增id直接上代码

  <selectKey keyProperty="id" keyColumn="id" resultType="Long" order="BEFORE">
      select SEQ_USER.NEXTVAL id FROM DUAL
    </selectKey>

解释一下以防有小伙伴不知放到啥意思,其中  SEQ_USER.NEXTVAL 就是上边我们指定的自增序列,id就是实体类id,嗯就是这样老铁

二、建表和如何使用开发中遇到的一些问题,那就再说一下细碎的问题

1. ORACLE  有时候莫名其奥妙锁表了,我靠,很扯淡

 解锁表

select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time;

alter system kill session '161,5655';

上边那句是查当前库锁表,下边是锁表解除

2.有时候需要对比的时间格式不对可以这样转

//时间修改加to_date("202476","YYYY-MM-DD") 

3.关联同步数据这样,场景就是同步两个有关联数据库数据

update 表明   set     表明 .DEPT_ID = (select SYS_DEPT.DEPT_ID from SYS_DEPT where SYS_DEPT.DEPT_NAME = 表明 .DEPT_ID and rownum <2);

4.查询当前单位及子单位用户sql

select  su.* from SYS_USER su
 where su.dept_id in (select dept_id from sys_dept start with dept_id = 1 connect by prior dept_id = parent_id and del_flag = 0 and status = 0)
    and u.del_flag = '0';

5.还有一个异常关闭锁的导致项目一直启动不了,找到那个表0变1就可以了,忘叫啥了,提示网上给的方法但是你的库可能没有,找到那个模糊匹配到的就行,我自己用不多说

6.说一下日期对比直接上代码

 to_char (字段,'yyyy-MM-dd') <= "2024-06-12"  这个经常用到时间范围搜索

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值