`
danwind
  • 浏览: 233933 次
  • 性别: Icon_minigender_1
  • 来自: 广东
社区版块
存档分类
最新评论

oracle问题收集一

 
阅读更多

1.dblink创建语法

 

--删除dblink
drop database link link_test;
--建立dblink
create database link link_test
connect to apple_wxs identified by apple_wxs
using 'TEST';
--查询主机B 上的XXX_t表
select * from XXX_t@link_test;

 

CREATE PUBLIC DATABASE LINK  link名
CONNECT TO username IDENTIFIED BY password
USING '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.134)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = bs)
)
)';

 

2. Insert into子查询

insert into tableName(col, col , col ) select 1,2,t.c from t where t.id='';

 

3. 加入distinct 和不加入执行时间相差几千倍 

 

4.对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,且rownum不能以任何表的名称作为前缀。

(1) rownum 对于等于某值的查询条件
如果希望找到学生表中第一条学生的信息,可以使用rownum=1作为条件。但是想找到学生表中第二条学生的信息,使用rownum=2结果查不到数据。因为rownum都是从1开始,但是1以上的自然数在rownum做等于判断是时认为都是false条件,所以无法查到rownum = n(n>1的自然数)。
SQL> select rownum,id,name from student where rownum=1;(可以用在限制返回记录条数的地方,保证不出错,如:隐式游标)
SQL> select rownum,id,name from student where rownum =2;
    ROWNUM ID     NAME
---------- ------ ---------------------------------------------------

(2)rownum对于大于某值的查询条件
   如果想找到从第二行记录以后的记录,当使用rownum>2是查不出记录的,原因是由于rownum是一个总是从1开始的伪列,Oracle 认为rownum> n(n>1的自然数)这种条件依旧不成立,所以查不到记录。

查找到第二行以后的记录可使用以下的子查询方法来解决。注意子查询中的rownum必须要有别名,否则还是不会查出记录来,这是因为rownum不是某个表的列,如果不起别名的话,无法知道rownum是子查询的列还是主查询的列。
SQL>select * from(select rownum no ,id,name from student) where no>2;
        NO ID     NAME
---------- ------ ---------------------------------------------------
         3 200003 李三
         4 200004 赵四

(3)rownum对于小于某值的查询条件
rownum对于rownum<n((n>1的自然数)的条件认为是成立的,所以可以找到记录。
SQL> select rownum,id,name from student where rownum <3;
    ROWNUM ID     NAME
---------- ------ ---------------------------------------------------
        1 200001 张一
        2 200002 王二

查询rownum在某区间的数据,必须使用子查询。例如要查询rownum在第二行到第三行之间的数据,包括第二行和第三行数据,那么我们只能写以下语句,先让它返回小于等于三的记录行,然后在主查询中判断新的rownum的别名列大于等于二的记录行。但是这样的操作会在大数据集中影响速度。
SQL> select * from (select rownum no,id,name from student where rownum<=3 ) where no >=2;
        NO ID     NAME
---------- ------ ---------------------------------------------------
         2 200002 王二
         3 200003 李三

(4)rownum和排序  
Oracle中的rownum的是在取数据的时候产生的序号,所以想对指定排序的数据去指定的rowmun行数据就必须注意了。
SQL> select rownum ,id,name from student order by name;
    ROWNUM ID     NAME
---------- ------ ---------------------------------------------------
         3 200003 李三
         2 200002 王二
         1 200001 张一
         4 200004 赵四
可以看出,rownum并不是按照name列来生成的序号。系统是按照记录插入时的顺序给记录排的号,rowid也是顺序分配的。

 

5.Oralce中的to_date()函数用于将字符串转换为日期对象,具体使用格式为:
to_date( string, [ format_mask ] , [ nls_language ] )
string 要转换的字符串.
format_mask 可选项,日期转换格式.
nls_language 可选项. 指定用于转换字符串的nls language.
[问题]ORA-01810: format code appears twice
可能是像Java那样指定日期格式,比如:
to_date('2006-06-01 18:00:00' 'yyyy-mm-dd hh:MM:ss')
而在Oracle中的日期格式是不区分大小写的,所以 mm 出现了两次。
正确的写法是:to_date('2006-06-01 18:00:00' 'yyyy-mm-dd hh:mi:ss')      

HH   Hour of day (1-12).
HH12 Hour of day (1-12). 
HH24 Hour of day (0-23).
MI Minute (0-59).
SS Second (0-59).
   

 

 6.在plsql中使用for update锁住多表,修改记录时提示“无效的rowid错误”

原因:可以连表查出多个表的字段for   update锁住纪录,但是这个时候不能使用工具,例如plsql的sql窗口,然后直接在查询出来的数据上进行修改和提交,因为不确定你更新的到底是哪个表的数据。

 

7.ORA-01008 not all variables bound

一般都是因为语句中含有类似“:a"这样的变量

 9.在Oracle/PLSQL中,lpad函数将左边的字符串填充一些特定的字符,其语法格式如下:   
lpad( string1, padded_length, [ pad_string ] )
其中string1是需要粘贴字符的字符串
padded_length是返回的字符串的数量,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成padded_length;pad_string是个可选参数,这个字符串是要粘贴到string1的左边,如果这个参数未写,lpad函数将会在string1的左边粘贴空格。

 

 

 

 

 

 

分享到:
评论

相关推荐

    Oracle 文档号搜集

    从给定的文件信息中,我们可以提炼出一系列与Oracle数据库管理、升级以及错误解决相关的专业知识点,特别是关于Oracle Metalink文档的重要性和使用场景。以下是对这些知识点的详细解析: ### Oracle Metalink及其...

    Oracle数据库日志收集手册小白必备

    #### 一、Oracle数据库日志类型与收集方法 **1. 数据库Alert日志** - **定义**: Alert日志是Oracle数据库中最关键的日志之一,它记录了数据库实例运行期间的重要事件,包括启动、关闭、错误消息等。 - **收集方法**...

    Oracle收集性能日志方法

    本文将深入探讨Oracle收集性能日志的方法,以便更好地理解系统的行为,定位问题,并进行性能调优。 首先,了解Oracle的性能日志主要包括AWR(Automatic Workload Repository)和ASH(Active Session History)。AWR...

    oracle收集

    oracle日常收集内容,平时工作积累listagg行转列

    oracle 1.30工作收集

    oracle 工作收集

    Oracle问题收集

    Oracle问题收集,这里收集了数据库开发及使用是常常出现的一些问题及解决方法。

    oracle性能日志分析报告收集方法

    在Oracle数据库管理中,性能日志分析是一项非常重要的工作,它能够帮助我们及时发现并解决数据库性能问题。本文将详细介绍如何通过Oracle Enterprise Manager (OEM)来收集Oracle数据库的性能日志,并生成相关的性能...

    oracle数据库最全收集

    1. 启动: a. 启动服务(oracleServiceXE) b. 启动监听(OracleXETNSListener) 2. 连接配置(通过网络... mynetconnect = (HOST= 192.168.1.105)(PORT = 1521)(service_name = oracle)(连接本机推荐使用HOST=计算机名)

    oracle驱动ojdbc678oracle11g

    1. **JDBC接口**:提供了一系列的Java类和接口,使得Java开发者能够通过标准的JDBC API与Oracle数据库进行交互,执行SQL语句,处理结果集,管理事务等。 2. **Oracle Connection Manager**:在客户端和数据库服务器...

    oracledb_exporter.0.3.0rc1-ora18.5.linux-amd64.tar.gz

    `oracledb_exporter`是一个针对Oracle数据库的监控工具,它为Prometheus提供了一个接口,允许Prometheus收集关于Oracle数据库的度量数据。Prometheus是一款流行的开源监控系统和时间序列数据库,而Grafana则是一款...

    Oracle数据库的安装配置方法及C#连接操作Oracle数据库技巧、通用类等资料搜集整理

    搜集整理的Oracle数据库安装与配置方法以及C#连接操作Oracle数据库的典型代码,比较管用的说。主要包括10个方面内容:1、ORACLE817安装(服务器端/客户端)。2、ORACLE817配置(服务器端)。3、ORACLE817配置...

    oracle学习资料,我搜集和总结的大量oracle学习资源

    Oracle数据库是全球最广泛使用的商业关系型数据库管理系统之一,它在企业级应用中扮演着核心角色。本压缩包中包含的“Oracle学习资料”是一份综合性的资源集合,旨在为系统管理员和初学者提供深入理解Oracle数据库的...

    一个Oracle server process进程会消耗多少内存

    1. **限制批量收集的数据量**:在执行BULK COLLECT操作时,可以设置合适的LIMIT值来控制每次收集的数据量,避免一次性加载过多数据到内存中。 2. **分批次处理数据**:对于大型数据集,可以采用分批处理的方式,...

    Oracle 11G统计信息自动收集及调整

    文档里包含Oracle 11G统计信息自动收集及调整,可以使用优化数据库性能,不合理的统计信息会影响数据库性能

    oracle 常用sql语句和常见问题

    本资料集主要涵盖了Oracle中的常用SQL语句以及在实际应用中可能遇到的常见问题及其解决策略。 1. **SQL基本操作**: - **SELECT语句**:用于从表中选择数据。例如,`SELECT * FROM table_name;` 将获取表中的所有...

    Oracle表删除大量数据(千万)后查询变慢问题(原因分析)

    Oracle 表删除大量数据后查询变慢问题分析 在 Oracle 数据库中,如果删除了大量数据(千万级别),可能会出现查询变慢的问题。下面我们将分析这个问题的原因,并提供解决方案。 问题的原因主要有两个方面: 1. 表...

    Oracle BI 完整解决方案 Oracle BIEE方案

    1. **数据整合**:Oracle BI通过其数据集成工具如Oracle Data Integrator (ODI) 收集来自多个源的数据,实现数据清洗、转换和加载,确保数据的一致性和准确性。 2. **数据仓库与数据集市**:Oracle BI支持构建高效...

    Oracle基础第三版 Oracle Essentials

    最后,书中可能会涵盖性能监控和调优,包括SQL性能分析、索引优化、数据库统计信息的收集,以及如何使用AWR(自动工作负载repository)和ASH(活跃会话历史)报告来识别和解决问题。 通过《Oracle基础第三版 Oracle...

    oracle资料收集.rar

    oracle资料收集.rar oracle资料收集.rar oracle资料收集.rar

Global site tag (gtag.js) - Google Analytics