今天两个同事用JAVA实现圆周率一百位小数的实现。一个同事问我要不要试试,由于很长时间没有写过JAVA代码,而且本身JAVA的水平就很差,于是打算用ORACLE实现。

其实Oracle中使用现成的函数就可以直接到的圆周率,比如:

SQL> select ACOS(-1) FROM DUAL;

ACOS(-1)

———-

3.14159265

可以通过调整数值类型的参数来获取38位精度:

SQL> SET NUMW 40

SQL> select ACOS(-1) PI FROM DUAL;

PI

—————————————-

3.1415926535897932384626433832795028842

如果不能使用现成的函数,而要自己计算,则要麻烦一些。

当时同事问我的时候,我告诉他一分种左右就可以搞定,而实际证明,写这个代码用了5分钟左右:

SQL> create OR REPLACE PROCEDURE P_PI wrapped

2 a000000

3 1

4 abcd

5 abcd

6 abcd

7 abcd

8 abcd

9 abcd

10 abcd

11 abcd

12 abcd

13 abcd

14 abcd

15 abcd

16 abcd

17 abcd

18 abcd

19 7

20 ec 11f

21 bLpzn0N21EJAQZmxUW0FNNv3TiEwgwDQ7UhqfC/WmGCua2Lf0zZFLKG/pZHGJ/bKzDYxl/z+

22 qm17DFusHSThkSZkEuy6LmGKASmXQXlIcj5c2rC7LQDfmeLEhifcu+/Euy0ZqsYYpFeKtfeC

23 Vamv1TmuhyHFqL1bdFkURszthPM58C+Jwz4juIdQ3pEBIhhdUWdwH2nhe8wAWXYtDklgqX3m

24 d05w6NIDkQvcTtJx/uoF8gVIBzPG8V7EYd5VJ/6IIw24DU+CH20QJHWJwe4eKG3j3/I=

25

26 /

过程已创建。

这时10.2版本下WRAP后的过程,利用这个代码可以返回圆周率100位以内的任意位小数:

SQL> SET SERVEROUT ON

SQL> exec P_PI

3.1415926535

PL/SQL 过程已成功完成。

SQL> exec P_PI(1)

3.1

PL/SQL 过程已成功完成。

SQL> exec P_PI(5)

3.14159

PL/SQL 过程已成功完成。

SQL> exec P_PI(38)

3.14159265358979323846264338327950288419

PL/SQL 过程已成功完成。

SQL> exec P_PI(100)

3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706

PL/SQL 过程已成功完成。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget

官方微博

TechTarget中国

oracle 中的pi,Oracle中实现圆周率计算(一)相关推荐

  1. oracle pi 3.14,Oracle中实现圆周率计算(一)

    今天两个同事用JAVA实现圆周率一百位小数的实现.一个同事问我要不要试试,由于很长时间没有写过JAVA代码,而且本身JAVA的水平就很差,于是打算用ORACLE实现. 其实Oracle中使用现成的函数 ...

  2. oracle停止一切进程,oracle启动/停止的几种方法以及 启动和停止过程中出错的解决办法...

    一.启动几种方法: 1. sqlplus /nolog connect /as sysdba startup 2. sqlplus /nolog connect /as sysdba startup ...

  3. oracle中 怎么替换,oracle如何替换字符串?

    oracle替换字符串的方法:1.replce方法,代码为[REPLACE(sourceStr, searchStr, replacedStr)]:2.translate方法,代码为[TRANSLAT ...

  4. oracle函数胡书写,Oracle中序列表sequence的使用.docx

    Oracle中序列表sequence的使用 在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按 序列号排序的地方. 1. create sequence 你首先 ...

  5. oracle中DBWR全称,Oracle基本术语大全

    Oracle基本术语大全 §2.4.2 重做日志工作模式Oracle可以在两种模式之一来工作: 1)ARCHIVELOG模式(可恢复) Oracle 一般至少有两个日志文件.它们轮流交替地被写入所作的 ...

  6. 在Oracle中exception关键字,Oracle表字段有Oracle关键字出现异常解决方案

    一.问题由来 现在进行项目改造,数据库需要迁移,由原来的使用GBase数据库改为使用Oracle数据库,今天测试人员在测试时后台报了一个异常. 把SQL语句单独复制出来进行查询,还是报错,仔细分析原因 ...

  7. oracle中聚合比较函数,Oracle聚合函数/分析函数

    oracle函数分两类:单行函数.多行函数.多行函数又分为聚合函数.组合函数,参数为数组,数据大小为记录数,这种数组不是普通高级语言的数组,是一种虚拟数组,当记录数大时,会将数据写入硬盘,内存中放的只 ...

  8. 从oracle9i/92数据库中导出数据至 oracle 8.1.7 数据库中

    根据ORACLE官方文档的说明,一旦数据库创建后,数据库的字符集是不能改变的.因此,提前考虑自己的数据库将选用哪一种字符集 是十分重要的.数据库字符集选择的一般规则是将数据库字符集设定为操作系统本地字 ...

  9. access oracle sql语句,在 Access 中使用 SQL 建索引

    时 间:2017-12-29 08:30:39 作 者:摘 要:  一般在Oracle中使用Sql,在Access中使用很少,不过与Oracle的Sql还是有很多相似之处的.以下SQL语句在ACCES ...

最新文章

  1. python 语言-Python语言的一些基本常用语句
  2. zend framework2 入门实例代码album模型
  3. boost::histogram::axis::integer用法的测试程序
  4. 【0802 | Day 7】Python进阶(一)
  5. android资产目录,android – 从非目录设备中的资产文件夹复制数据库
  6. 面试官: Flink双流JOIN了解吗? 简单说说其实现原理
  7. django异常日志_django 捕获异常和日志系统过程详解
  8. html点击文字展开图片,DIV CSS鼠标经过悬停在图片上时图片上方显示文字
  9. ctfshow-WEB-web11( 利用session绕过登录验证)
  10. KVM虚拟机在Ubuntu16.04下的环境搭建
  11. 详解利用ShoeBox制作位图字体
  12. 人民币真的升值了吗?
  13. ​越狱iOS必备神器Flex使用指南-屏蔽越狱检测的破解利器
  14. Wunderlist1.22(Window版)无法启动的解决方法
  15. 细分领域:偏门的色流玩法+简单的色流变现套路
  16. 宠物王国6java变态版,宠物王国外传999999级变态版
  17. 【css】svg修改图标颜色
  18. angularJs监控页面加载完毕
  19. 毕业这么多年,为啥升职加薪这么难?
  20. android闪光灯测心率,MIUI 12新功能来了,通过闪光灯测心率,支持全部机型

热门文章

  1. linux指令(一、目录与档案)
  2. L1-011~L1-015
  3. 计算机发展有四代 每一代的特点是什么,计算机发展经历了哪几代?每一代各有什么特点?...
  4. java pdf 报表_关于Java向PDF模板写入数据,以及java制作pdf报表的问题
  5. SOLOV2源码解析
  6. 老油条表示真干不过,部门新来的00后测试员已把我卷崩溃,想离职了...
  7. C语言线程lock与unlock,lock()和unlock()是怎么实现【面试题详解】
  8. FBI指控SamSam勒索软件幕后黑手
  9. 《北京爱情故事》:四个女人的爱情
  10. 论《北京爱情故事》中石小猛的爱情