concat()是拼接函数,将两个字符串拼接在一起
站在用户的角度思考问题,与客户深入沟通,找到井冈山网站设计与井冈山网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、网站设计、企业官网、英文网站、手机端网站、网站推广、空间域名、网站空间、企业邮箱。业务覆盖井冈山地区。
select
concat(first_name,last_name)
from
employees
||
是字符串连接符,用与连接字符串
select
first_name||last_name
from
employees
两者很相似但也有不同的地方
||可以在字符串中间添加自定义的字符,而concat不行
如果你是要连接两个字段可以用concat()也可以用||
,用concat
可读性好
如果3个以上的连接字段就推荐||
可以根据你的需要来设置.
前边几个是变量,就是in out那一堆
相当于你输入和输出的参数,而且输入和输出的参数只能每次调用一个
一个输入参数你不可能一下输入两个
下边is后边那个
%TYPE属性
在PL/SQL中可以将变量和常量声明为内建或用户定义的数据类型,以引用一个列名,同时继承他的数据类型和大小。这种动态赋值方法是非常有用的,比如变量引用的列的数据类型和大小改变了,如果使用了%TYPE,那么用户就不必修改代码,否则就必须修改代码。
例:
v_empno SCOTT.EMP.EMPNO%TYPE;
v_salary EMP.SALARY%TYPE;
不但列名可以使用%TYPE,而且变量、游标、记录,或声明的常量都可以使用%TYPE。这对于定义相同数据类型的变量非常有用。
其实说白了,就是后边is定义的那个已经不是常规的变量了,相当于一个数组或者游标
Oracle语句中IN和=的区别有:
1、首先应用范围不一样:in 可以理解为是范围内的选择;= 只有一个。例如:
select sno, sname from t1 where sno in ('sn1001','sn1002');
select sno, sname from t1 where sno in ('sn1001');
select sno, sname from t1 where sno ='sn1001';
select sno, sname from t1 where sno in (select sno from t2); --子查询结果可以不止一个结果
select sno, sname from t1 where sno =(select sno from t2); --子查询结果只能有一个。
2、其次性能也不一样;=的性能大于in的性能,因为=能较好的使用索引等。
3、in 表示在一个结合内进行查询,比如 select * from character where letter in ('A','B','C')。
=的作用就是一个值的比较。但是等号也可以实现in的效果,只是写起来比较麻烦。比如上面的例子,也可以这样写:
select * from character where letter='A' or letter='B' or letter='C'.
两个运算符都比较常用,根据具体的情况选择。
使用临时表:
在 调用函数前把 PRM_AKB022 中的值 拆分出来,插入到临时表的多个行中。
在 函数中,再 in (select xxx from 临时表)!