Oracle PL\SQL 操作(三)Oracle函数
1.系统变量函数
(1)SYSDATE
该函数返回当前的日期和时间。返回的是Oracle服务器的当前日期和时间。
select sysdate from dual;
insert into purchase values
(‘Small Widget’,’SH’,sysdate, 10);
insert into purchase values
(‘Meduem Wodget’,’SH’,sysdate-15, 15);
查看最近30天的所有销售记录,使用如下命令:
select * from purchase
where purchase_date between (sysdate-30) and
sysdate;
(2)USER
查看用户名。
select user from
dual;
(3)USERENV
查看用户环境的各种资料。
select userenv(‘TERMINAL’) from
dual;
2.数值函数
(1)ROUND 四舍五入函数
ROUND(数值,保留位数)
select round(3.1415,3) from deul;
select product_name,round(product_price,0) price
from
product;
(2)TRUNC 从数中截去小数部分
TRUNC(数值,截断小数点n位后的数)
select trunc(3.145159,3) from dual;
select trunc(123456.45,-1) from dual;
select trunc(123456.45) from dual;
select product_name,trunc(product_price) price
from
product;
3.文本函数
(1)UPPER、LOWER和INITCAP
这三个函数更改提供给它们的文体的大小写。
select upper(product_name) from product;
select lower(product_name) from product;
select initcap(product_name) from
product;
函数INITCAP能够整理杂乱的文本,如下:
select initcap(‘this TEXT hAd UNpredictABLE caSE’) from
dual;
(2)LENGTH
求数据库列中的数据所占的长度。
select product_name,length(product_name) name_length
from product
order by
product_name;
(3)SUBSTR
取子串,格式为:
SUBSTR(源字符串,起始位置,子串长度);
create table item_test(item_id char(20),item_desc char(25));
insert into item_test values(‘LA-101’,’Can, Small’);
insert into item_test values(‘LA-102’,’Bottle, Small’);
insert into item_test values
(‘LA-103’,’Bottle, Large’);
取编号:
select substr(item_id,4,3) item_num,item_desc
from
item_test;
(4)INSTR
确定子串在字符串中的位置,格式
相关文档:
此方法是从一位前辈那里学来的,导语句很方便,只需写清楚表名就行。怕忘了,暂记一下。(sql server 2005试验过)
第一次使用的话,需要建立如下存储过程。代码很长,没关系,直接copy就行。
--------- outputdata 存储过程
CREATE PROCEDURE dbo.OutputData
@tablename sysname
AS
declare @column va ......
declare @tb3 table (商品编号 nvarchar(10),批次号 nvarchar(10),库存数量 int,出库数量 int)
declare @tb1 table (商品编号 nvarchar(10),批次号 nvarchar(10),库存数量 int)
insert into @tb1 select '0001','090801',200
union all select '0001','090501',50
&n ......
01、SQL与ORACLE的内存分配
ORACLE的内存分配大部分是由INIT.ORA来决定的,一个数据库实例可以有N种分配方案,不同的应用(OLTP、OLAP)它的配置是有侧重的。 SQL概括起来说,只有两种内存分配方式:动态内存分配与静态内存分配,动态内存分配充许SQL自己调整需要的内存,静态内存分配限制了SQL对内存的使 用。
002、SQ ......
写法一:
set xact_abort on
begin tran
DECLARE @SQL VARCHAR(99)
DECLARE CUR_FK CURSOR LOCAL FOR
SELECT 'alter table '+ OBJECT_NAME(FKEYID) + ' drop constraint ' + OBJECT_NAME(CONSTID) from SYSREFERENCES
--删除所有外键
OPEN CUR_FK
FETCH CUR_FK INTO @SQL
WHILE @@FETCH_STATUS =0
BEGIN
......