【推荐】Oracle Live SQL——在线 Oracle SQL 测试工具

最近回答了几个 CSDN “学习”功能里“问答”区的一些专业相关问题,回答过程中采用严谨的方式,在 Oracle Live SQL 上进行验证测试。这个很好用的 Oracle APEX 应用我使用好几年了,虽然近年来已转行 MySQL 和国产数据库领域,但仍然会遇到一些 Oracle 的问题,在这上面做在线 SQL 测试很方便,遂推荐给各位!

Oracle Live SQL 介绍

使用此网站可以共享和学习 SQL 和 PL/SQL。 当您使用此网站时,您将被分配访问 Oracle 数据库中的**方案(或称模式,Schema)**的权限。当您运行 SQL 和 PL/SQL 时,会话中的每条语句都会被记录下来。您对分配的方案的访问是临时的,在一段时间不活动后,该方案将被初始化并回收给其他人。要永久保存您的工作,您需要将会话保存为脚本。保存的脚本可以回放、注释、编辑、共享和下载。

此网站的功能包括:

  • 在有限的时间内对 Oracle 数据库方案进行 SQL 访问
  • 能够将语句集保存为脚本
  • 能够与他人共享保存的脚本
  • 用于浏览方案中对象的数据库方案浏览器
  • 内嵌教学教程
  • 包括 Java 在内的流行语言的数据访问示例

为什么要使用此网站:

  • 开发和扩展您的 Oracle 数据库、SQL 和 PL/SQL 技能
  • 访问 Oracle 开发人员社区共享的 SQL 和 PL/SQL 示例
  • 与他人分享您的 SQL 和 PL/SQL 数据库专业知识
  • 开发数据库方案以便在其他地方部署
  • 向 Oracle 社区请求有关数据库语法的帮助

Live SQL 当前运行在 Oracle Database 19c EE Extreme Perf-19.17.0.0.0 上。

使用示例

使用 Oracle Live SQL 时需要登录 Oracle 账号,因此您需要提前注册或新注册一个 Oracle 账号,建议使用 Outlook 等国外邮箱注册(考过 Oracle 认证的应该都知道),虽然国内邮箱也没什么问题,但可能会受政治因素影响。

测试在线 SQL

在这里插入图片描述

低代码功能

在这里插入图片描述

实例

详见 我的问答

SQL 代码如下:

//简化的原问题的等价 SQL 方案

drop table t1;
create sequence seq_t1 start with 1 increment by 1;

create table t1(id number(20) default seq_t1.nextval primary key , code number(10));

insert into t1(code) select level from dual connect by level < 11;

insert into t1(code) select code from t1;

select * from t1 order by code;

select code,count(1) from t1 group by code order by code;

drop table t1 purge;

create table t1(code number(10));

insert into t1(code) select level from dual connect by level < 11;

select distinct code name from t1 order by code;

select (select distinct code name from t1) code from dual; /*这里模拟题主的SQL写法,其实也有问题,应该是题主多打了一个name */

//原问题的 SQL 方案

drop table t_track_pro_code;
drop table ba_bgt_info_hz;

create table t_track_pro_code(track_pro_code varchar2(30),track_pro_code_name varchar2(60));
create table ba_bgt_info_hz(track_pro_code varchar2(30),bgt_id number(16),ori_bgt_id number(16),bgt_doc_title varchar2(100),is_deleted number(1),importtype number(2),billstatus number(2));

insert into ba_bgt_info_hz values('aaa',101,1,'车辆购置税收入补助地方资金',2,1,1);
insert into ba_bgt_info_hz values('aaa',101,1,'title',2,1,1);
insert into ba_bgt_info_hz values('aaa',101,1,'车辆购置税收入补助地方资金',0,1,1);
insert into ba_bgt_info_hz values('aaa',101,1,'车辆购置税收入补助地方资金',2,8,1);
insert into ba_bgt_info_hz values('aaa',101,1,'车辆购置税收入补助地方资金',2,8,-1);
insert into ba_bgt_info_hz values('bbb',102,2,'title',2,1,1);
insert into ba_bgt_info_hz values('ccc',103,3,'车辆购置税收入补助地方资金',2,1,1);

select * from ba_bgt_info_hz;

select * from t_track_pro_code;

//题主原始 SQL
insert into t_track_pro_code (track_pro_code,track_pro_code_name) select (with tb1 as (
select distinct m.track_pro_code from ba_bgt_info_hz m where m.ori_bgt_id in (
      select t.bgt_id from ba_bgt_info_hz t where t.track_pro_code in (select distinct track_pro_code from ba_bgt_info_hz 
where bgt_doc_title like '%车辆购置税收入补助地方资金%' and is_deleted=2 and track_pro_code is not null and importtype not in (8,9)) 
and t.billstatus>=0 and t.importtype not in (8,9) 
    )  and m.importtype not in (8,9)  union  
    select distinct track_pro_code from ba_bgt_info_hz 
where bgt_doc_title like '%车辆购置税收入补助地方资金%' and is_deleted=2 and track_pro_code is not null and importtype not in (8,9)
) select distinct track_pro_code track_pro_code_name from tb1) track_pro_code,'车辆购置税收入补助地方资金' 
track_pro_code_name from dual;

insert into t_track_pro_code (track_pro_code,track_pro_code_name) with temp as (
select distinct track_pro_code from ba_bgt_info_hz 
where bgt_doc_title like '%车辆购置税收入补助地方资金%' and is_deleted=2 and track_pro_code is not null and importtype not in (8,9)),
tb1 as (
select distinct m.track_pro_code from ba_bgt_info_hz m where m.ori_bgt_id in (
      select t.bgt_id from ba_bgt_info_hz t where t.track_pro_code in (select track_pro_code from temp) and t.billstatus>=0 and t.importtype not in (8,9) 
)  and m.importtype not in (8,9)
    union select track_pro_code from temp 	/*因前面已经去重了,union也会去重,所以这里无需distinct*/
)
select track_pro_code,'车辆购置税收入补助地方资金' track_pro_code_name from tb1;

其他 Oracle 学习实用网站

除了在线测试 SQL 外,Oracle Live SQL 上还有很多学习 Oracle SQL 的教程,可以很方便的点击一个按钮直接将教程中的代码复制到并在其中运行。这对于学习、从事 Oracle 数据库开发工作的 Oracle Developer 很有帮助。

此外,该网站页脚处也提到了 Ask TomDev Gym 相关链接,还有 Oracle Learning Path 等。
`在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Oracle SQL查询工具是一些专门用于执行和管理Oracle数据库SQL语句的软件工具。以下是一些常见的Oracle SQL查询工具: 1. SQL*Plus:这是Oracle提供的官方命令行界面工具,是最基本和最常用的工具之一。它可以在命令行下输入和执行SQL语句,具有丰富的功能和灵活的配置选项。 2. SQL Developer:这是Oracle官方提供的一款图形化的SQL开发工具。它类似于传统的IDE,提供了可视化的界面,具有各种丰富的功能,如SQL编辑器、对象管理器、表数据查询等。 3. Toad:这是一款非常流行的第三方Oracle SQL查询工具。它具有强大的功能和灵活的界面,能够方便地进行SQL开发、调试和性能优化。 4. PL/SQL Developer:这是另一款常用的第三方Oracle SQL开发工具。它专门针对Oracle的PL/SQL语言进行开发,提供了丰富的功能和便捷的开发环境。 5. Oracle SQL Developer Data Modeler:这是一款专门用于数据建模和设计的工具。它可以通过可视化的界面进行数据库对象的设计和关系建立,生成相应的SQL脚本,具有强大的数据建模功能。 除了以上列举的几种工具外,还有其他一些第三方工具,如DBeaver、Navicat等,它们也提供了强大的SQL查询和开发功能,但它们可能不像Oracle官方工具那样针对Oracle数据库进行专门开发和优化。 总之,以上列举的Oracle SQL查询工具是几种常用的工具,可以帮助开发人员方便地执行和管理Oracle数据库中的SQL语句,提高开发效率和数据库性能。选择合适的工具取决于个人的需求和偏好。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独上西楼影三人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值