前言

分享一些基于oracle工作上的一些小技巧

场景展示一

一般公司开发中,有测试服务器和正式环境的服务器
功能测试完成需要发布上线时,需要将测试服务器上的表弄一份到正式服 2个又是不同地址的库 总不能是手动进行创建吧 耗时耗力还容易出错

解决方法及思路一

首先我们是在测试服建表的 如果在同一个库中我们是可以通过ddl语句 查询并建表

create table GTMC_BL2_GD_ZCCJ_LINE_TYPE_LS as (
       select * from GTMC_BL2_GD_ZCCJ_LINE_TYPE_DEP where 1=2
)

这里简单举个栗子
这样我们就可以查询某个表并创建一张表 如果要把数据也copy进来的话 可以把where 1=2 去掉

现在我们遇见第二个难题了
不同地址的数据库如何处理呢

oracle是有进行远程连接的dblink

create database  link 链接名称 connect to 账号 identified by 密码
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 端口)))(CONNECT_DATA =(SERVICE_NAME = 服务名)))';

HOST : 表示远程数据库IP
PORT : 表示远程数据库端口
SERVICE_NAME : 远程数据库的实例名
在这里插入图片描述
创建好DBlink后 我们就可以通过远程链接 进行查询并创建表
举个栗子:
我的DBlink名称是GDZC_TEST
首先我先通过DBlink 查询远程链接数据库中的表

SELECT * FROM SYS_ZRFS@GDZC_TEST

@后面是你的DBling 名称
在这里插入图片描述
创建一张临时表试试效果

CREATE TABLE SYS_ZRFS_LS AS
SELECT * FROM SYS_ZRFS@GDZC_TEST

在这里插入图片描述

场景展示二

当我们使用insert 语句时 有时候要把各种复杂的条件查询的结果插入到表中

解决方法及思路二

秉着如何简单方便如何来的原则
在insert语句中加入子查询
举个栗子

INSERT INTO SYS_ZRFS_LS SELECT '3' AS CODE_VALUE,'见面交易' AS CODE_VALUE_NAME FROM dual

在这里插入图片描述

后序

以后会陆陆续续记录更多场景,欢迎提供场景思路 谢谢

Logo

前往低代码交流专区

更多推荐