oracel 重要记事

原创 2011年01月12日 08:40:00

1: length('‘) 的值是多少?  

       与length(null)的值一样,值均为null。因此,使用等于(=),不等于(!=,<>)这些运算都是不成立的。 length系列函数都一样,如:lengthB, lengthC, length2, length4。 同理, substr系列函数也一样。

2: pro *c 中一次 fetch 多条数据时,若遇到空值,则每次只fetch到空值所在行为止。 一个典型的处理方式如下:

EXEC SQL PREPARE s1 FROM :sSQLCode;
EXEC SQL DECLARE cur_s CURSOR FOR s1;
EXEC SQL OPEN cur_s;
根据 sqlca.sqlcode进行错误处理(打开游标是否出错);
for(; ;)
{
    EXEC SQL FETCH cur_s INTO :sArrVar;
        
    iCurrQryQt = sqlca.sqlerrd[2] - lHadQryQt;  //本次返回记录条数        
    lHadQryQt = sqlca.sqlerrd[2];               //已返回的总记录数
    
    根据 sqlca.sqlcode进行错误处理;
    如果找不到数据,则设置退出标志        

    for (i = 0; i<iCurrQryQt ; i++)
    {
        对每一条记录进行处理            
    }
    
    if ((iCurrQryQt < N_FETCH_ROW_MAX_QT) && (退出标志为真)) break;
}

其中 sArrVar是一个数组,假设元素个数为10,那么正常情况下一次会fetch到10条记录,但当记录有空值时,一次fetch只到空值所在的记录行。

3.oracle  NUMBER类型

Oracle number datatype 语法:NUMBER[(precision [, scale])]
简称:precision --> p (精度即有效位数)     scale     --> s (小数位数)

NUMBER(p, s)
范围: 1 <= p <=38, -84 <= s <= 127
保存数据范围:-1.0e-130 <= number value < 1.0e+126   
保存在机器内部的范围: 1 ~ 22 bytes

有效为:从左边第一个不为0的数算起的位数。
s的情况:
s > 0
   精确到小数点右边s位,并四舍五入。然后检验有效位是否 <= p。可以直观地理解为,数值总长度为p位(除去小数点),其中有s位为小数。
s < 0
   精确到小数点左边s位,并四舍五入。然后检验有效位是否 <= p + |s|。
s = 0
   此时NUMBER表示整数。 

可以与C语言中数值是一样理解,他们在内存中都是以指数形式存储的(科学计数法,如 0.1234 * 10^3),其存储方式如下:|正负号一位 | 有效数字 | 指数 |
如 242567 在内存的存储方式: | + | 0.24567 | 2 |,即一位的符号位,中间是有效数字,后面是指数2 (10的2次方)。
尽管如此,oracle的number类型的有效数字比C语言的double的多,在32位机的C语言中,浮点型数据的精度和范围如下,


类型说明符

比特数(字节数)

有效数字

数的范围

float

32(4)

6~7

10^-37~10^38         

double

64(8)

15~16

10^-307~10^308

long double

128(16)

18~19

10^-4931~10^4932

显然, oracle的number类型的有效数字高达38位,远远超过了C语言的19位。如此一来,在PRO *C进行程序设计中,将数值从数据库select ... into 或fetch .. into到本地变量时,有可能造成有效性数字的损失。同理,由于宿主语句对应数据类型的范围不同,也可能产生数值不可控的情况。

4.  Pro *C的语法支持:Pro*C对PL/SQL语法的支持是有限的,典型的就是不支持INNER JOIN, LEFT OUTER JOIN等语法,但这并不是说不支持内连接和外连接,而是换一种形式支持。内连接就不用说了,外连接可以采用外连接操作符(+)来实现。  除此之外,Pro*C还不支持WITH等语法。因此对于一些新奇的语法,最好先写个小例子程序来试试能不能编译过,不然,编译不过的时候等着哭吧。 

5. oracle的trigger中不能访问trigger所在的表

http://www.blogjava.net/john_yu/archive/2007/04/27/114215.html

 

6. 更改列名

alter table .. rename column .. to ..;


7. plsql中建表 报没有权限,需要在声明过程,或包的时候,加上 AUTHID CURRENT_USER

如:create or replace package adjust_data AUTHID CURRENT_USER  is xxxx;

参考见: http://bbs.csdn.net/topics/360200923


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

记事(五)

下一周就要考试了,下一周要考3门课,所以最近一直是复习状态,但是虽说是复习状态,一直也不是很用心,因为感觉老师给了一些重点,感觉还能过,就不是那么紧张。这两天占了我很多时间的事,有两个。 一个是前几天...

TexturePacker入门记事

原文链接:http://dlqingxi.diandian.com/post/2012-05-29/40027813020 什么是TexturePacker? >TexturePa...

PHP记事(5)- 关于comment

查看index.php输出的html代码:  <meta http-equiv="X-UA-Compatible" cont

inote记事工具-PreferenceScreen及PreferenceActivity使用

源码及APK下载: http://files.note.sdo.com/7pq1Y~jGuguFnM0b0006dI Android提供了如下的设置页面,通过PreferenceScreen及Pre...

在csdn开博第一天记事

记得注册csdn的时间好像是去年年末,当时在巩固java的基础,自己遇到了很多问题要下载资料,搜到了这里, 看见这里大师级的人物还真多,自己要学习的知识也还有太多太多了。 先说一些为什么会接触软件编程...

友情链接技巧-花年记事

做网站的流量,一个必不可少的步骤就是友情链接,诚然,与权重高、友链又少的网站做友情链接,可以大大有利于网站在搜索引擎中的权重,能带来大量的流量。   所以说筛选可交换的网站,是站长每天必做的事情,但...

关于感染型病毒ramnit和runner的查杀记事

主要是在测试一些软件的时候不小心中毒的,当时还是拿虚拟机测试软件,但是复制出来的时候中毒了。 记得复制出来的时候,某杀软还提醒了一下,但是没当回事,轻易加白名单了,因为文件中有一个是自己写的...

记事

前段时间去面试,面试官可能年纪跟我差不多或者稍大些,应该是做技术出身的吧,感觉人挺随和的。 一开始问的问题是对出差有什么看法,大体是公司不定时需要出差,但出差时间不会太长,问是否能接受。由于以前也有...

拆机记事——显卡驱动

最开始的故障要从我那35元买的8G的金士顿U盘说起。之前也用U盘做过启动盘,用的是一个叫做大白菜的软件,免费的实在是太不靠谱了,U盘老是坏掉。然后,发现了ultraiSO的利器,不用想,俺显然是买不起...

python pymysql mysql乱码记事

sql = "SELECT p.per_name,p.Per_Sort,p.Per_ID,d.Par_ID,d.par_label FROM `personnel` as p left JOIN `p...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)