- 浏览: 1361651 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (453)
- Struts2 (4)
- Struts1 (16)
- Spring (9)
- Hibernate (5)
- AJAX (16)
- MS Server (9)
- Oracle (35)
- 测试技术 (5)
- 其他 (37)
- JSF (1)
- EJB (5)
- ASP.NET (9)
- iBATIS (5)
- Struts Spring Hibernate (2)
- HTML (12)
- Eclipse使用 (5)
- 设计模式 (5)
- JSP (32)
- 正则表达式 (2)
- 服务器 (12)
- Java基础 (48)
- MySQL (4)
- 面试 (22)
- UML (1)
- 数据结构 (3)
- Ant (2)
- 规范 (4)
- JavaScript (29)
- 软件使用及技巧 (25)
- PHP (1)
- DWR (3)
- FreeMarker (1)
- ExtJs (17)
- JFreeChart (9)
- Reports (2)
- JavaException (1)
- Java Mail (1)
- Flex (9)
- 异常 (12)
- Log4j (2)
- WebService (1)
- jQuery (1)
- Sybase (2)
- myeclipse_plugin (2)
- Linux (5)
- jbpm (2)
- SCM (1)
- mongoDB (1)
最新评论
-
lihua2008love:
<typeAlias alias="User& ...
IBATIS简单操作 -
lihua2008love:
...
关于项目框架设计的一点学习 -
c_jinglin:
我使用<OBJECT CLASSID="cls ...
这就是个静态页面通过js控制mscomm对某com设备进行访问的例子. -
zlbjava:
赞,用了还不错
java获取请求的ip地址,并解析ip所属地区 -
完美天龙:
cs842813290 写道楼主,我明白的地方:在链表已有N个 ...
JAVA实现双向链表
摘要:这是原来用ORACLE的过程中记录下的一些问题,现在翻出来看看,还比较实用,如果以后再次遇到这样的问题的时候,就不用东找西找资料了。
里面包括字段同步问题,单引号问题, EXECUTE IMMEDIATE的使用問題,replace使用問題,數據庫中字段為字符型時生成SQL語句的問題。
1、 同步表记录问题
有两张表t1,t2,有一个相同的字段,passwd,我想在更新t1表的passwd字段时同时更新t2的passwd字段,让他们保存一致,同样,在更新t2的passwd的时候同时更新t1的passwd.我分别做了两个触发器.单独对于某张表是可以的.但是同时启用两个触发器就会产生变异.
我想也对.这样不就是死循环了吗?请问怎样实现这样的功能.让两个字段保持一致。
解決:没用解决
2、單引號問題:
這條語句
這條語句
但是我的過程中又需要動態生成SQL語句,如
注:thcur.cno為用cursor取得的字段名。
這里我試了是不能夠這么寫的:
請問這里怎么寫才能夠得到上面可以正常工作的語句
解決:
3、 EXECUTE IMMEDIATE的使用問題
這是一條根據條件動態生成的SQL語句(無錯):
ORA-00917: missing comma
但是我檢測絕對沒有少。不知道是什么地方出錯,還是DML語句不可以這樣使用。但是從不少資料看都可以這樣使用的,后來實在沒法,到CSDN上一搜,在這里找到一篇文章: http://blog.csdn.net/zhujjcn/archive/2005/02/04/280749.aspx
有心得,就用下面這種方式把問題解決了:
4、 replace使用問題
我在匿名塊中這樣使用:
8:51:44 PLS-00221: 'REPLACE' is not a procedure or is undefined
明明是有這個函數為什么會出現這種情況呢,真的讓我頭痛。
我試了一下這樣:
5、數據庫中字段為字符型時生成SQL語句的問題
在任何一種高級語言中,如果要操作表中字段是字符型的,那么就一定要在該字兩邊加上單引號,這一點也是我們很多人都會去注意的。所以,給了我一種心理,就是在所有的操作字符類型的時候都要加上單引號。
但是在ORACLE的游標中就不用(肯定還有其它的情況,我沒有遇上)
如下面這個復雜的游標:
and cno=''''||paraCNO||''''
讓我可忙活了半天,我運行的時候,不是這樣報錯,他出現在錯誤去在該游標的上面几行,說一個定義錯誤,但是這明明是正確的。沒法,我只得新建一個文件,一行一行的去試,才把這個問題找出來。
里面包括字段同步问题,单引号问题, EXECUTE IMMEDIATE的使用問題,replace使用問題,數據庫中字段為字符型時生成SQL語句的問題。
1、 同步表记录问题
有两张表t1,t2,有一个相同的字段,passwd,我想在更新t1表的passwd字段时同时更新t2的passwd字段,让他们保存一致,同样,在更新t2的passwd的时候同时更新t1的passwd.我分别做了两个触发器.单独对于某张表是可以的.但是同时启用两个触发器就会产生变异.
我想也对.这样不就是死循环了吗?请问怎样实现这样的功能.让两个字段保持一致。
解決:没用解决
2、單引號問題:
這條語句
select * from prd_flow_bak where cno='FT0302';可以工作正常。
這條語句
select * from prd_flow_bak where cno=FT0302;工作不正常。
但是我的過程中又需要動態生成SQL語句,如
sql1:='select * from prd_flow_bak where cno='||thcur.cno;只能得到工作不正常的語句。
注:thcur.cno為用cursor取得的字段名。
這里我試了是不能夠這么寫的:
sql1:='select * from prd_flow_bak where cno=''||thcur.cno||''';它不像在JAVA程序中,在JAVA程序中就好辦,因為它是以雙引號為包含。
請問這里怎么寫才能夠得到上面可以正常工作的語句
解決:
sql1:='select * from prd_flow_bak where cno='||''''||thcur.cno||'''';
3、 EXECUTE IMMEDIATE的使用問題
這是一條根據條件動態生成的SQL語句(無錯):
insertSQL:='insert into Customer2To3_M values('; insertSQL:=insertSQL||''''||currentCNO||''''||','; insertSQL:=insertSQL||to_date(to_char(dateIntBegin),'YYYYMMDD')||','; insertSQL:=insertSQL||''''||''''||','||avgSalaryOfThisDay; insertSQL:=insertSQL||','||''''||to_char(to_date(to_char(dateIntBegin),'YYYYMMDD'),'Day')||''''||')';使用下面的這樣執行會出錯:
execute immediate insertSQL;報錯:
ORA-00917: missing comma
但是我檢測絕對沒有少。不知道是什么地方出錯,還是DML語句不可以這樣使用。但是從不少資料看都可以這樣使用的,后來實在沒法,到CSDN上一搜,在這里找到一篇文章: http://blog.csdn.net/zhujjcn/archive/2005/02/04/280749.aspx
有心得,就用下面這種方式把問題解決了:
execute immediate 'insert into Customer2To3_M values(:1,:2,:3,:4,:5)' using currentCNO,to_date(to_char(dateInt),'YYYYMMDD'),totalORDNO,avgSalaryOfThisDay,to_char(to_date(to_char(dateInt),'YYYYMMDD'),'Day');注: 根據我的理解,其中的數字表示的是字段的該中的位置。
4、 replace使用問題
我在匿名塊中這樣使用:
replace(insertSQL,'kkk','ttt');可是去給我報以這樣的錯誤
8:51:44 PLS-00221: 'REPLACE' is not a procedure or is undefined
明明是有這個函數為什么會出現這種情況呢,真的讓我頭痛。
我試了一下這樣:
insertSQL:=replace(insertSQL,'kkk','ttt');正常運行,呵呵。
5、數據庫中字段為字符型時生成SQL語句的問題
在任何一種高級語言中,如果要操作表中字段是字符型的,那么就一定要在該字兩邊加上單引號,這一點也是我們很多人都會去注意的。所以,給了我一種心理,就是在所有的操作字符類型的時候都要加上單引號。
但是在ORACLE的游標中就不用(肯定還有其它的情況,我沒有遇上)
如下面這個復雜的游標:
cursor c1(startDateOfThisMonth in varchar2,endDateOfThisMonth in varchar2,nowDateOfThisMonth in varchar2,paraCNO in varchar2) is select ordno,pro_fr,pro_to,QTY,CNO from prd_flow_bak where pro_fr>=to_date(startDateOfThisMonth,'YYYYMMDD') and pro_to<to_date(endDateOfThisMonth,'YYYYMMDD') and cno=paraCNO --就是這里,在表中為字符型 and (to_date(nowDateOfThisMonth,'YYYYMMDD') between pro_fr and pro_to);剛開始的時候,我把這里寫成這樣:
and cno=''''||paraCNO||''''
讓我可忙活了半天,我運行的時候,不是這樣報錯,他出現在錯誤去在該游標的上面几行,說一個定義錯誤,但是這明明是正確的。沒法,我只得新建一個文件,一行一行的去試,才把這個問題找出來。
发表评论
-
exp和imp,oracle9i导出导入数据,数据库备份,创建用户,删除用户
2009-04-16 21:57 3656执行下面这句,是创建用户 create user testkk ... -
Oracle批量创建用户和导入导出的脚本
2008-12-26 10:36 2561-- 在cmd下执行 SELECT 'exp ' || ... -
DBMS_SESSION.SET_CONTEXT的使用及无效权限问题的解决
2008-12-26 10:34 3142ORA-01031: insufficient privile ... -
sys用户使用@连接符提示无效权限的错误ORA-01031:
2008-12-26 10:30 2854问题:有同事反映,新安装的数据库使用 conn sys/ora ... -
Oracle创建主键时处理重复数据的程序
2008-12-26 10:29 2277/**************************** ... -
Oracle10g安装过程中"无法确定主机的IP地址时产生该异常错误" :解决办法
2008-08-23 08:40 45811. Oracle10g安装过程中出现“无 ... -
Oracle to_date用法
2008-06-26 15:29 3539Oracle to_date用法 日期格式参数 含义说明 D ... -
Java学习常用网站收集
2008-05-14 17:22 3311有网友说Java学习需要官方网站,想一下,发现有些框架的官方网 ... -
ORACLE数据库命名编码规范
2008-05-13 22:37 2264我在“管理”的论坛找到了答案,谁还有更多的,请指教!!! * ... -
ADO&ADO.NET 读取 Oracle 数据集
2008-05-13 22:22 2316使用 ADO.NET 访问 Oracle 9i 存储过程 ht ... -
通过批处理文件启动Oracle服务
2008-05-13 22:16 2195自己家里的机子配置不高,所有Oracle服务都是手动启动、关闭 ... -
Oracle常用及非常用函数
2008-05-12 17:11 5864感于总有些网友提出一 ... -
Oracle 9i的闪回查询概述
2008-05-11 23:59 2557Oracle 9i的闪回查询概述 ... -
使用分析单
2008-05-11 23:41 1110分析函数计算基于行组的值,并可以用来实现rownum伪列表述的 ... -
使用伪列Rownum
2008-05-11 23:31 1632对员工表进行排序,之后显示工资最多的前3名。 这么简单的问题想 ... -
oracle-merge用法详解
2008-05-11 22:28 2259Oracle9i引入了MERGE命令,你能够在一个SQL语句中 ... -
Oracle 数据字典(2)
2008-05-11 19:21 1540创建表的SQL语句如下-- 创建数据表create table ... -
Oracle 数据字典(1)
2008-05-11 19:14 1987Oracle数据库字典介绍 Oracle数据字典是有表和 ... -
AFTER DELETE Trigger
2008-05-11 07:33 3419An AFTER DELETE Trigger means t ... -
Oracle中常见数据类型转换
2008-05-11 07:28 1699To | From | CH ...
相关推荐
这份文档可能包含了一系列Oracle使用过程中遇到的常见问题和解答,涵盖了从安装配置到日常操作的各种问题,对于初学者或经验较少的DBA(数据库管理员)来说,是一份非常实用的参考指南。 2. **oracle常见错误代码的...
以下是一些关于Oracle常见问题的详细解答: 1. Oracle安装完成后,系统中预设了一些默认的用户名和密码,例如: - internal/oracle - sys/change_on_install - system/manager - scott/tiger - sysman/oem_...
### Oracle面试常见问题知识点解析 #### 一、Oracle基础知识 - **数据库监听**: 数据库监听是一种后台服务,它是数据库能够正常运行的关键组成部分之一。监听器的主要功能是在特定的网络地址和端口上等待客户端的...
### Oracle常见问题总结 #### 一、Oracle 11g 导出空表设置 **问题背景** 在使用Oracle 11g进行数据备份时,可能会遇到一个问题:使用`exp`命令导出数据库时,空表(即没有任何数据的表)并不会被包含在导出文件中...
oracle常见问题集锦oracle常见问题集锦
Oracle连接常见问题 Oracle连接常见问题
### Oracle常见问题解析 #### 一、Oracle安装后的初始口令 - **Internal**: `internal` - **OracleSys**: `sys/change_on_install` - **System**: `system/manager` - **Scott**: `scott/tiger` - **Sysman**: `...
以下是一些常见的Oracle数据库问题及其解决方法: 1. 导入.dmp文件:Oracle数据库的备份通常是以.dmp格式存储的。要导入这些文件,首先需要创建一个表空间,如`logdatafile`,然后创建一个用户,如`log`,指定其...
本资源“Oracle的1000个常见问题”旨在为Oracle数据库的使用者提供详尽的解决方案,涵盖了从基础操作到高级技术的各种问题。 1. **基础操作**:Oracle数据库的基础操作包括安装配置、启动停止数据库服务、创建和...
以下是Oracle数据库常见问题诊断中的一些典型错误和解决方案: 1. TNS-12154 Error 或 ORA-12154 特征:SQL*NET 没有找到连接串或别名 原因: * (1) 没有找到 TNSNAMES.ORA 文件,该文件的缺省路径为: + ...
oracle dba 面试,常见题,大家看看,照这个提纲整理下思路
本文主要结合之前一次oracle迁移达梦的项目,将碰到的问题以及一系列踩过的坑列举出来供大家参考,数据库版本是达梦7。(本文中涉及到的部分对象名已用sch1,tab1等方式替换) 1、整体情况 迁移过程中失败任务数低于5%...
### Oracle客户端连接服务器常见...通过上述步骤,可以有效地解决Oracle客户端连接服务器过程中遇到的各种常见问题。如果仍然存在其他问题,请进一步排查客户端与服务器之间的网络设置以及Oracle软件本身的配置情况。
Oracle面试题常见的问题 Oracle面试题是一个非常重要的知识点,涵盖了Oracle数据库管理系统的各个方面。下面我们将逐一解释每个问题和答案: 1. 解释冷备份和热备份的不同点以及各自的优点 冷备份和热备份是两种...
本资料集主要涵盖了Oracle中的常用SQL语句以及在实际应用中可能遇到的常见问题及其解决策略。 1. **SQL基本操作**: - **SELECT语句**:用于从表中选择数据。例如,`SELECT * FROM table_name;` 将获取表中的所有...
本手册针对Oracle DB的常见问题进行深入解析,旨在帮助DBA们快速定位并修复故障。 手册内容可能涵盖以下几个核心领域: 1. **性能优化**:性能问题是数据库管理中的常见挑战。可能涉及SQL查询优化、索引策略调整、...
Oracle BIEE 常见问题解决办法汇总 问题1:提示组合 * 添加筛选器选择对应的列 * 在筛选器属性页面,运算符中选择提示 知识点: 在 Oracle BIEE 中,添加筛选器可以根据需要选择对应的列,并在筛选器属性页面中...