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 ......
写法一:
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
......
if exists(select * from master.dbo.sysdatabases where name = 's2723103005')
begin
drop database s2723103005
print '已删除数据库s2723103005'
end
create database s2723103005
on primary
(name=His_data,
filename = 'd:\database\his_data.mdf',
siz ......