usersegment没有数据oracle_本地没有oracle连接远程oracle数据库 - CSDN
精华内容
参与话题
  • oracle一次插入多条数据(insert all)

    万次阅读 2019-09-16 08:55:38
    公司的项目,有个功能每次使用需要向数据库插入很多数据,导致页面等待很长时间才有结果。 数据库:oracle11g id:采用sequence自增 每次循环,都会查询一次sequence,然后insert一条数据,性能非常低。 改进 ...

    分享一个零基础,通俗易懂,而且非常风趣幽默的人工智能教程(如不能直接点击访问,请以“右键”->“在新标签页中打开链接”方式打开)网站,网址:https://www.cbedai.net/gnailoug/

    问题

    公司的项目,有个功能每次使用需要向数据库插入很多数据,导致页面等待很长时间才有结果。
    数据库:oracle11g
    id:采用sequence自增
    每次循环,都会查询一次sequence,然后insert一条数据,性能非常低。

    改进

    改成一次插入多条数据,id通过触发器自动设置,不再每次先查询sequence,效率提高非常多。

    oracle一次插入多条的方法

    在oracle里面,不支持像mysql那样直接在后面拼多个记录。oracle中有两种方法达到批量插入的效果:

    方法一:采用union all拼接查询方式

    本文不做详细介绍,可在网上查看相关资料。

    insert into pager (PAG_ID,PAG_PARENT,PAG_NAME,PAG_ACTIVE)
              select 8000,0,'Multi 8000',1 from dual
    union all select 8001,0,'Multi 8001',1 from dual
    

    ##方法二:采用insert all的方式
    由于insert all方式插入多条时,通过sequence获取的值是同一个,不会自动获取多个,所以id需要通过其他方式设置,(我这里采用触发器方式自动设置id)

    1、创建测试表:

    create table test_insert(
           data_id number(10) primary key,
           user_name varchar2(30),
           address varchar2(50)
    )
    

    data_id为主键,通过sequence产生主键值。

    2、创建序列:

    create sequence seq_test_insert 
    minvalue 1
    maxvalue 999999999999999999999999
    start with 1
    increment by 1
    cache 20;
    

    3、创建触发器
    通过触发器自动给insert语句设置id值

    create or replace trigger tr_test_insert
    before insert on test_insert
    for each row
    begin
      select seq_test_insert.nextval into :new.data_id from dual;
    end;  
    

    4、插入测试数据:

    insert all 
    into test_insert(user_name,address) values('aaa','henan')
    into test_insert(user_name,address) values('bbb','shanghai')
    into test_insert(user_name,address) values('ccc','beijing')
    select * from dual;
    

    相当于下面三个insert into语句,但性能比单条高多了。

    insert into test_insert(user_name,address) values('aaa','henan');
    insert into test_insert(user_name,address) values('bbb','shanghai');
    insert into test_insert(user_name,address) values('ccc','beijing');
    

    需要注意的是,在insert all语句里不能直接使用seq_test_insert.nextval,因为即便每个into语句里都加上seq_test_insert.nextval也不会获得多个值。

    5、查看测试数据

    select * from test_insert;
    

    结果如下图:
    这里写图片描述

    另外,insert all还支持往不同的表里插入数据,如:

    insert all 
    into table1(filed1,filed2)values('value1','value2')
    into table2(字段1,字段2,字段3) values(值1,值2,值3)
    select * from dual;
    

    分享一个零基础,通俗易懂,而且非常风趣幽默的人工智能教程(如不能直接点击访问,请以“右键”->“在新标签页中打开链接”方式打开)网站,网址:https://www.cbedai.net/gnailoug/

    展开全文
  • Oracle数据仓库创建教程

    千次阅读 2016-03-22 21:16:55
    Oracle数据仓库创建教程。如何创建一个数据仓库,创建实例,最近开始Oracle的数仓建模学习,详细记录了图形界面下的 Oracle database 12C 数据仓库创建过程。本教程在Linux环境和Windows环境均可成功创建。注意:...

    Oracle数据仓库创建教程。如何创建一个数据仓库,创建实例,以为毕业设计要求,最近开始Oracle的数仓建模实践,详细记录了图形界面下的 Oracle database 12C 数据仓库创建过程。

    本教程在Linux环境和Windows环境均可成功创建。

    注意:不论是Linux下还是Windows下,前提是你已经正确安装了Oracle database 12C。

    共14步,每步至少一个图形介绍,力求详细。只要一步步安装就可以了。

    0.0 打开 Database Configuration Assistant(DBCA数据库配置助手),初始化是安装的一部分,也可以随时打开用来创建一个新的数据库实例。

    这里写图片描述

    1.0 选择创建数据库

    这里写图片描述

    2.0 创建模式选择高级模式

    这里写图片描述

    3.1 选择数据仓库

    这里写图片描述

    3.2 查看参数

    这里写图片描述

    4.0 数据库标识

    这里写图片描述

    5.0管理选项

    这里写图片描述

    6.0数据库身份证明

    这里写图片描述

    7.0 网络配置–默认配置

    这里写图片描述

    8.0 存储位置

    10

    9.0 数据库选项

    11

    10.1 初始化参数–内存

    12

    10.2 初始化参数–调整大小

    121

    10.3 初始化参数–字符集

    122

    10.4 初始化参数–连接模式

    123

    11.0 创建选项

    13

    12.0 先决条件检测

    13.0 概览,检查配置参数

    14

    14.0 开始创建

    15

    15.0 完成,成功创建

    16

    至此完成数据库实例创建,已经完成了数据仓库创建,接下来开始SQL、建模之旅吧。

    展开全文
  • 查看 oracle 数据库服务端数据

    千次阅读 2020-02-04 15:49:30
    select parameter, value from v$nls_parameters where parameter like '%CHARACTERSET'; 【Java面试题与答案】整理推荐 ... 算法与数据结构 异常 文件解析与生成 Linux MySQL Oracle Redis D...

    select parameter, value from v$nls_parameters where parameter like '%CHARACTERSET';

     


    【Java面试题与答案】整理推荐

     

    展开全文
  • Oracle-数据字典解读

    千次阅读 2017-01-12 23:53:23
    概述官方文档Oracle数据库字典通常是在创建和安装数据库时被创建的,Oracle数据字典是Oracle数据库系统工作的基础,没有数据字典的支持,Oracle数据库系统就不能进行任何工作。数据字典中的表是不能直接被访问的,...

    概述

    官方文档

    Oracle数据库字典通常是在创建和安装数据库时被创建的,Oracle数据字典是Oracle数据库系统工作的基础,没有数据字典的支持,Oracle数据库系统就不能进行任何工作。数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。

    Oracle 数据字典是有表和视图组成,它们存放在 SYSTEM 表空间中, 数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。

    Oracle字典视图包括四个层次,分别为X$内部表、基础数据字典表、数据字典视图和动态性能视图(v$或者GV$开头)。


    这里写图片描述
    这里写图片描述

    Not all views sets have three members. For example, the data dictionary
    contains a DBA_LOCK view but no ALL_LOCK view.

    查看全部的数据字典 dictionary

    Oracle 11g中数据字典视图2577个,神仙也记不住,但是有个dictionary视图,该视图里记录了所有的数据字典视图的名称。所以当我们需要查找某个数据字典而又不知道这个信息在哪个视图里的时候,就可以在dictionary视图里找。该视图还有个同名词dict。

    select * from dict ORDER BY TABLE_NAME;SELECT * FROM DICTIONARY ORDER BY TABLE_NAME;

    同义词视图

    select OWNER,SYNONYM_NAME,TABLE_NAME from dba_synonyms  ;

    我们可以看到 v$ 正好是v_$的同义词,验证了之前的关于oracle性能视图的理论。

    这里写图片描述

    SQL> select OWNER,SYNONYM_NAME,TABLE_NAME from dba_synonyms a where  a.table_name='DICTIONARY' ;
    
    OWNER                 SYNONYM_NAME         TABLE_NAME
    ---------------     ----------------       ----------------- 
    PUBLIC                  DICTIONARY        DICTIONARY
    PUBLIC                  DICT              DICTIONARY
    

    数据字典的内容

    • 1,数据库中所有模式对象的信息,如表、视图、簇、及索引等。
    • 2,分配多少空间,当前使用了多少空间等。
    • 3,列的缺省值。
    • 4,约束信息的完整性。
    • 5,Oracle 用户的名字。
    • 6,用户及角色被授予的权限。
    • 7,用户访问或使用的审计信息。
    • 8,其它产生的数据库信息。

    数据字典分类

    数据字典分为 数据字典表 和 数据字典视图

    数据字典表

    数据字典表里的数据是 Oracle 系统存放的系统数据,而普通表存放的是用户的数据。

    为了方便的区别这些表,数据字典表的名字都是用”$”结尾, 这些表属于 SYS用户,只有 Oracle 能够进行读写。

    数据字典表由$ORACLE_HOME/rdbms/admin/sql.bsq 脚本创建.

    SYS 用户下的这些数据字典表,存放在 system 表空间下面, 表名都用”$”结尾.

    为了便于用户对数据字典表的查询, Oracle 对这些数据字典都分别建立了用户视图, 这样即容易记住, 还隐藏了数据字典表表之间的关系, Oracle 针对这些对象的范围,分别把视图命名为 DBA_XXXX, ALL_XXXX 和 USER_XXXX。


    数据字典视图

    动态性能视图由脚本: $ORACLE_HOME/rdbms/admin/catalog.sql 创建

    静态数据字典(静态性能视图)

    Views with the Prefix DBA_

    包括了所有数据库对象的信息;

    Views with the prefix DBA_ show all relevant information in the entire database.
    DBA_ views are intended only for administrators.

    前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限。

    SELECT OWNER, OBJECT_NAME, OBJECT_TYPE FROM
    DBA_OBJECTS ORDER BY OWNER, OBJECT_NAME;

    Views with the Prefix ALL_

    当前用户有权限访问到的所有对象的信息;
    与user_*相比,all_* 并不需要拥有该对象,只需要具有访问该对象的权限即可

    SELECT OWNER, OBJECT_NAME, OBJECT_TYPE FROM
    ALL_OBJECTS ORDER BY OWNER, OBJECT_NAME;

    Views with the Prefix USER_

    当前用户schema下的对象;

    SELECT OBJECT_NAME, OBJECT_TYPE FROM USER_OBJECTS
    ORDER BY OBJECT_NAME;

    动态数据字典(动态性能视图)

    除了静态数据字典中三类视图, 其他的字典视图中主要的是 V$视图,之所以这样叫是因为他们都是以 V$GV$开头的。

    这些视图会不断的进行更新,从而提供了关于内存和磁盘的运行情况,所以我们只能对其进行只读访问而不能修改它们。

    V$视图是基于 X$虚拟视图的。V$视图是 SYS 用户所拥有的,在缺省状况下,只有 SYS 用户和拥有 DBA 系统权限的用户可以看到所有的视图,没有 DBA 权限的用户可以看到 USER_和 ALL_视图,但不能看到 DBA_视图。

    与 DBA_,ALL,和 USER_视图中面向数据库信息相反,这些视图可视的给出了面向实例的信息。

    更多请查看 Oracle-动态性能视图解读


    展开全文
  • Oracle随机查询n条数据

    千次阅读 2017-11-30 08:30:33
    select empno,empname from ( select empno,empname from emp order by dbms_random.value()) where rownum 上述的3就是随机取的n,所以这里的3可以随意赋值,注意这里必须是先排序再随机取值。
  • 查询今天数据: SELECT COUNT(1) FROM T_CALL_RECORDS WHERE TO_CHAR(T_RKSJ,'YYYY-MM-DD')=TO_CHAR(SYSDATE,'YYYY-MM-DD') 查询昨天数据: SELECT COUNT(1) FROM T_CALL_RECORDS WHERE TO_CHAR(T_RKSJ,'YYYY-...
  • oracle删除表数据

    万次阅读 2018-07-31 17:55:43
    truncate table 表名; delete from 表名 where 条件; 两种方法的区别: ... truncate,意思为截断表,能够不占用资源的全部删除表,优点是速度快,缺点是删除不能恢复,不能按条件删除。...
  • 这里的需求是:插入数据之后没有时间字段,如何查看每条记录的插入时间; 用法:创建表的时候记得加入:create table maclean_rd(t1 int,t2 timestamp) rowdependencies; 然后根据scn时间查询表数据插入时间 ...
  • oracle 导出导入不含数据的空库

    千次阅读 2016-06-02 20:04:54
    10g或之前,用exp导出,imp导入,带上rows=n参数11g...expdp带上此参数,不导出数据;impdp带上此参数,则不导入数据,问你死未。导出空结构 expdp system/s directory=backup_dir CONTENT=METADATA_ONLY dumpfile=t
  • oracle之——oracle数据库数据导入导出步骤(入门)

    万次阅读 多人点赞 2019-05-21 15:38:30
    oracle数据库数据导入导出步骤(入门)说明: 1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL 2.如果熟悉命令,建议用exp/imp命令导入导出,避免第三方工具...
  • oracle恢复删除数据

    千次阅读 2019-03-21 15:44:58
    1。select * from znjtresource.t_device_epolice as of timestamp to_timestamp('2019-3-21 15:20:00','yyyy-mm-dd hh24:mi:ss') 2,。insert into znjtresource.t_device_epolice (select * from znjtresource.t_...
  • Oracle导出数据字典

    千次阅读 2020-01-15 10:33:26
    由于项目是不断迭代更新,数据库表也是根据需求不断更改,导致现在数据库50多张表数据字典都没有整理,现在领导突然需要数据字典,一时很难弄出来,于是就想通过一个快捷的办法生成数据字典,具体的步骤如下: ...
  • Oracle快速清除表数据

    万次阅读 2014-12-31 10:52:14
    摘要: 记录删除表数据的三种方式truncate、delete、drop的相同不同之处、以及如何使用truncate删除有外键约束字段的表数据和如何重置sequence初始值。
  • oracle 获取第一条数据

    万次阅读 2019-07-30 14:02:25
    关于取第一条数据的sql特此作了一个例子如下: SELECT * FROM tableName where fd_rt = 'A' --and rownum=1 ORDER BY fd_date DESC 标题正常说 第一条数据应为16bf4eb91606de5e0ff61f94d0f8f20f 在where 后...
  • 不同Oracle数据库之间的数据同步

    万次阅读 2017-04-19 15:11:55
    对于中大型数据库,业务数据库里所有的数据同步到另外一个处理服务器上最佳的选择还是使用SnapShot方式,即快照的方式。 Oracle数据库的快照是一个表,它包含有对一个本地或远程数据库上一个或
  • oracle数据匹配merge into

    万次阅读 2016-02-04 11:18:35
    Oracle数据同步,merge into使用,minus匹配差异数据
  • Oracle存储过程执行成功,但数据没有化一. 检查执行之后,是否在后面加写一行commit;二. 检查execute语句在where条件后面,操作的字段是否trim(),否则很有可能执行结果不成功;示例:红色下划线的地方特别注意:不管...
  • 使用过oralce很多种导入导出的方式,pde,sql(导出不支持blog格式),dmp格式,觉得.dmp最为方便,可以导出所有的表结构、数据、SEQ及存储过程等,下面就开始具体流程,并说明到如果表中没有数据时如何导入。...
  • 最近在项目发版测试的时候,导出dmp的时候不小心把开发库中的一些脏数据导出来了,测试那边导入进去之后一堆不规范的数据,为了不影响测试结果,于是总结了一个快速清空数据库数据表所有数据的方法。 二、方法 (1)...
  • Oracle数据回滚

    千次阅读 2019-04-16 22:22:40
    最近在修复一个比较老的项目报表的bug的时候,因为对该项目不太熟悉,导致生产环境数据修改有误,于是求助导师帮忙回滚数据,现学习一下Oralce数据回滚以备不时之需。 查看某个时间点的表的数据 select * from ...
1 2 3 4 5 ... 20
收藏数 1,397,541
精华内容 559,016
关键字:

usersegment没有数据oracle