24SQL
create or replace function f_op (p_n1 number , p_op varchar2 , p_n2 number ) return number
as
begin
return case when p_op = '+' then p_n1 + p_n2
when p_op = '-' then p_n1 - p_n2
when p_op = '*' then p_n1 * p_n2
when p_op = '/' and p_n2<> 0 then p_n1 / p_n2
else null
end ;
end f_op;
/
create or replace procedure pro_241(p1 number , p2 number , p3 number , p4 number ) as
r_result number default 0 ;
begin
for r in (
with t_num as
( select 1 id ,p1 as n from dual
union
select 2 id ,p2 as n from dual
union
select 3 id ,p3 as n from dual
union
select 4 id ,p4 as n from dual),
t_op as
( select '+' as o from dual
union
select '-' as o from dual
union
select '*' as o from dual
union
select '/' as o from dual)
select distinct
a.n as a,
o1.o as o1,
b.n as b,
o2.o as o2,
c.n as c,
o3.o as o3,
d.n as d
from t_num a, t_num b, t_num c, t_num d,
t_op o1, t_op o2, t_op o3
where a.id not in (b.id, c.id, d.id)
and b.id not in (c.id, d.id)
and c.id <> d.id) loop
r_result := f_op(f_op(f_op(r.a,r.o1,r.b),r.o2,r.c),r.o3,r.d);
if r_result=12 then
dbms_output.put_line( '((' ||r.a||r.o1||r.b|| ')' ||r.o2||r.c|| ')' ||r.o3||r.d);
end if ; --((a b) c) d
r_result := f_op(f_op(r.a,r.o1,r.b),r.o2,f_op(r.c,r.o3,r.d));
if r_result=12 then
dbms_output.put_line( '(' ||r.a||r.o1||r.b|| ')' ||r.o2|| '(' ||r.c||r.o3||r.d|| ')' );
end if ; --(a b) (c d)
end loop ;
end ;
/
set serveroutput on;
exec pro_241( 32 , 13 , 3 , 17 );
24SQL的更多相关文章
- 30种oracle常见的等待事件说明
1Buffer busy waits从本质上讲,这个等待事件的产生仅说明了一个会话在等待一个Buffer(数据块),但是导致这个现象的原因却有很多种.常见的两种是: 当一个会话视图修改一个数据块,但这 ...
- Oracle常见等待事件
1Buffer busy waits从本质上讲,这个等待事件的产生仅说明了一个会话在等待一个Buffer(数据块),但是导致这个现象的原因却有很多种.常见的两种是: · 当一个会话视图 ...
随机推荐
- LeetCode Total Hamming Distance
原题链接在这里:https://leetcode.com/problems/total-hamming-distance/ 题目: The Hamming distance between two i ...
- Python开发【前端】:JavaScript
JavaScript入门 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本 ...
- 只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态。还请确保在应用程序配置的 // 节中包括 System.Web.SessionSta
我直接在父类的构造方法中调用了sessionj结果就报这个错误 搜了好久 让改web.config 可是不起作用 代码如下: public class BasePage:System.Web.UI.P ...
- spark 源码安装
clone 源码 git clone git://github.com/apache/spark.git maven编译源码 国外镜像比较慢,此处修改maven仓库的镜像为阿里云镜像: <mir ...
- C++ 中的std::vector介绍(转)
vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vec ...
- iOS计算完整文字高度(适应iOS 10)
动态计算文字的高度:(切记LineSapcing>=2,不然会显示不全) +(CGSize) boundingALLRectWithSize:(NSString*) txt Font:(UIFo ...
- 关于Java运算中类型自动提升的问题
1.表达式中的自动类型提升: 表达式求值时,Java自动的隐含的将每个byte.short或char操作数提升为int类型,这些类型的包装类型也是可以的. 例如:short s1 = 1; s1 = ...
- GPS部标平台的架构设计(一)
设计和开发一个GPS系统似乎并不太难,很多人马上就想到了地图,放大,缩小之类的功能,最多就是在加点报表之类的东西,就成了. 这种观点造成了业界内,很多GPS系统粗制滥造,不堪大用. 事实上,设计和开发 ...
- unrar.dll 使用实例
/* * main.cpp * * Created on: Aug 17, 2015 * Author: smallcroco * * Discription: * 1 首先打开解压包,可以设置打开方 ...
- js实现文件上传
js function UpladFile() { var fileObj = document.getElementById("filetes").files[0]; // 获取 ...