今天两个同事用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过程已成功完成。

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

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

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

  2. oracle安装搜狗输入法教程,Linux入门学习教程:在Ubuntu 14.04中安装使用搜狗拼音输入法...

    然后,访问搜狗输入法Linux版的官网,http://pinyin.sogou.com/linux,下载搜狗输入法Linux版.从官网可以看到,该输入法官方只支持Ubuntu(不过网上有人通过将deb ...

  3. ubuntu 14.04 安装oracle 11g,ubuntu 14.04 安装 oracle 11g

    参考:http://www.linuxidc.com/Linux/2015-03/115264.htm (1)Oracle要求swap最少为3.69G (2)apt-get install rpm l ...

  4. oracle触发器比较,Oracle使用触发器和mysql中使用触发器的比较

    一.触发器 1.触发器在数据库里以独立的对象存储, 2.触发器不需要调用,它由一个事件来触发运行 3.触发器不能接收参数 --触发器的应用 举个例子:校内网.开心网.facebook,当你发一个日志, ...

  5. oracle 12c 安装scott,Oracle 12c中添加scott用户的方法

    新电脑上安装了Oracle 12c,没有自带scott用户.看了不少帖子,发现以下帖子最为靠谱. 补充事项: 1. 运行语句"select username from dba_users w ...

  6. 简单介绍oracle执行计划,Oracle性能优化之oracle中常见的执行计划及其简单解释

    一.访问表执行计划 1.table access full:全表扫描.它会访问表中的每一条记录(读取高水位线以内的每一个数据块). 2.table access by user rowid:输入源ro ...

  7. oracle 设置忽略关键字,Oracle中Hint被忽略的几种常见情形

    Hint可以影响优化器对于执行计划的选择,但这种影响不是强制性的,优化器在某些情况下可能会忽略目标SQL中的Hint.由于各种原因导致Hint被Oracle忽略后,Oracle并不会给出任何提示或者警 ...

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

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

  9. oracle分组聚合查询,Oracle中分组查询group by用法规则解析

    本篇文章小编给大家分享一下Oracle中分组查询group by用法规则解析,文章介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. Oracle中group by ...

最新文章

  1. php中使用like查询,php like 查询
  2. 关于set.insert的一个问题,是否是常量的问题(未解决问题)
  3. (*长期更新)软考网络工程师学习笔记——Section 5 数据链路层
  4. android unbound prefix
  5. 二维数组(声明以及遍历)
  6. Android是什么 之三手机之硬件形态
  7. ASP.NET MVC传递Model到视图的多种方式之通用方式的使用
  8. 在线教育与计算机网络的融合发展,[浅谈线上教育和线下教育的融合]
  9. 极客大学架构师训练营 毕业典礼 奉献优秀架构师升级攻略
  10. React Native重构路线图发布!
  11. 考研数学预热(肖老师)-2019-12-21
  12. matlab 对称矩阵特征值为负数,【原创】古典Jaccobi方法计算实对称矩阵A的特征值和向...
  13. RTl8188EUS设置ap模式
  14. B2B跨境电子商务平台综合服务解决方案
  15. weka软件使用问题解决(一)
  16. 格(Lattice)基础(一)
  17. 前端进行身份证验证(详细)
  18. java使用自定义HTML模板发送邮件——记录开发篇1
  19. 入侵检测技术综述(比较全)
  20. 【java】tomcat配置域名访问并修改端口号

热门文章

  1. boost::units::conversion_factor相关的测试程序
  2. boost::sort模块实现使用最坏情况分布进行扩展排序的排序示例
  3. boost::pointee用法的测试程序
  4. boost::fusion::hash_value用法的测试程序
  5. boost::container模块实现显式实例表的测试程序
  6. ITK:使用二项式内核模糊图像
  7. VTK:可视化算法之BluntStreamlines
  8. VTK:可视化之FrogBrain
  9. VTK:Utilities之3DArray
  10. VTK:Rendering之StippledLine