`
footman265
  • 浏览: 120833 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

oracle函数详解

阅读更多

 

1、SQL 语句基础
下面给出SQL语句的基本介绍。
1.1、SQL语句所用符号
操作符 用途 例子 
+ - 表示正数或负数,正数可省去 + -1234.56 
+ 将两个数或表达式进行相加 A=c+b 
- 将两个数或表达式进行相减 34-12 
* 将两个数或表达式进行相乘 12*34 
/ 除以一个数或表达式 18*11 
NULL 空值判断 Where name is null; 
|| 字符串连接 ‘101-’||tel_num 
= 等于测试 Select * from emp  where name=’赵元杰’; 
!= 或<>或^= 不等于测试 Select * from emp  where name !=’赵元杰’; 
<

  小于测试 Select * from emp  where sal < 5000; 
>

  大于测试 Select * from emp  where sal > 5000; 
<= 小于等于测试 Select * from emp  where sal <= 5000; 
>= 大于等于测试 Select * from emp  where sal >= 5000; 
Not in 测试某值是否在一个指定的结果集中 Select name,addr from expert where local not in(‘北京’,’上海’); 
ANY 将一个值与一组值进行比较,返回满足条件的结果。必须跟!=,<,>,<=,>= select ename,sal from emp where sal<= any(select sal from emp where deptno=10) 
SOME 同ANY,必须跟!=,<,>,<=,>= 
  
ALL 将一个值与一组值比较,返回满足条件的所有列值。必须跟!=,<,>,<=,>= Select name,sal from emp w here sal<= all 
( 500,800,1200); 
Not between
A and B 判断某个值是否界于两者之间。 Select name,sal from emp Where 
sal between 500 and 1200; 
[not]exists 判断某个列是否存在于一组值中。 select dname,deptno from dept where exists
(select * from emp where dept.deptno=emp.deptno) 
A[not]like b

  比较两个模式是否相似,当使用like 语句时Oracle不去访问索引。 Select * from emp
Where ename like ‘TH%’; 
Is [not] null  测试值是否为空。 Select ename,deptno from emp
Where comm. Is null or comm.=0; 
Not 对结果的否定。 Select * from emp Where sal not(sal<1000); 等价于select ename,sal from emp where sal>=1000; 
AND 用于判断两个条件十分都满足。 Select * from emp where 
Ename=’SIMTH’ and sal>=1000; 
OR 用于判断两个条件中是否有一个满足。 Select * from emp where 
Ename=’SIMTH’ or ename=’SCOTT’; 
UNION 用于返回(组合)两个查询中所有唯一的行。 Select ename from emp union
Select ename from emp; 
UNION ALL 用于返回(组合)两个查询中所有所有的行。 
  
INTERSECT 用于返回两个查询中相同的行。 Select ename from emp1 intersect select ename from emp2; 
MINUS 用于返回两个查询中的不同的行。

1.2、简单select查询
当我们可以用SQL*PLUS登录到SQL>下后,我们可以用DESC 显示某表的结构,也可以用select 语句简单查询表中的一些列的内容。
例:要查询EMP表中员工的姓名、工资及出生日期,则:
SQL>select ename, sal, hiredate from emp;
2、伪列及伪表
Oracle系统为了实现完整的关系数据库功能,系统专门提供了一组称为伪列(Pseudocolumn)的数据库列,这些列不是在建立对象(如建表)时由我们完成的,而是在我们建立对象时由自动Oracle完成的。Oracle目前有以下的伪列:

CURRVAL and NEXTVAL 使用序列号的保留字

LEVEL                  查询数据所对应的级

ROWID                  记录的唯一标识

ROWNUM               限制查询结果集的数量

Oracle 还提供了一个DUAL 的伪表,该目的表主要是保证在使用SELECT 语句中语句的完整性而提供的,如:我们要查询当前的系统日期及时间,而系统的日期和时间并是放在一个指定的表里。所以在 from 语句后就没有表名给出。为了使用 from 后有个表名,我们就用DUAL代替。如:

例1:查询Oracle系统日期及时间:

SQL> select to_char( sysdate,'yyyy.mm.dd hh24:mi:ss') from DUAL;

TO_CHAR(SYSDATE,'YY

-------------------

2001.06.02 07:28:09

例2:计算一下 5000+5000*0.1 的结果是多少,则:

SQL> select 5000+5000*0.1 from DUAL;

5000+5000*0.1

-------------------

         5500

3、SELECT语句
在关系数据库中,使用频率最高要算SELECT语句了。尽管SELECT 语句的使用非常简单,但确很有学问。下面简单介绍有关SELECT 语句的常用方法。
1.命令语法: 
SELECT 的简单语法:
SELECT [DISTINCT | ALL] {* | column1[, column2]...}
FROM {table_1 | (subquery)} [alias]
[, {table_2 | (subquery)} [alias]]...
[WHERE condition]
[CONNECT BY condition [START WITH condition]
[GROUP BY expn] [HAVING expn]
[{ UNION [ALL] | INTERSECT | MINUS } SELECT . . . ]
[ ORDER BY [expn ] [ ASC | DESC]
[ FOR UPDATE [OF [user.]table | view] column ]
[NOWAIT]
详细语法结构需查阅最新ORACLE 原版《ORACLE8i SQL REFERENCE MANUAL》或《ORACLE9i SQL REFERENCE MANUAL》
4、SQL中的单记录函数
许多资料(包括Oracle 的资料)把Oracle的SQL语句中用到的函数分为单值函数和多值函数,单值函数又分为字符函数和数字函数。下面分别介绍它们。
4.1、单记录字符函数
函    数           说               明 
 ASCII 返回对应字符的十进制值 
 CHR 给出十进制返回字符 
 CONCAT 拼接两个字符串,与 || 相同 
 INITCAT 将字符串的第一个字母变为大写 
 INSTR 找出某个字符串的位置 
 INSTRB 找出某个字符串的位置和字节数 
 LENGTH 以字符给出字符串的长度 
 LENGTHB 以字节给出字符串的长度 
 LOWER 将字符串转换成小写 
 LPAD 使用指定的字符在字符的左边填充 
 LTRIM 在左边裁剪掉指定的字符 
 RPAD 使用指定的字符在字符的右边填充 
 RTRIM 在右边裁剪掉指定的字符 
 REPLACE 执行字符串搜索和替换 
 SUBSTR 取字符串的子串 
 SUBSTRB 取字符串的子串(以字节) 
 SOUNDEX 返回一个同音字符串 
 TRANSLATE 执行字符串搜索和替换 
 TRIM 裁剪掉前面或后面的字符串 
 UPPER 将字符串变为大写 
 NVL 以一个值来替换空值

1、ASCII(<c1>)
<c1>是字符串。返回与指定的字符对应的十进制数。
SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;
     A      a ZERO SPACE
---------- ---------- ---------- ----------
65     97     48     32
SQL> select ascii('赵') zhao,length('赵') leng from dual;
      ZHAO       LENG
----------      ----------
     54740          1
2、CHR(<I>[NCHAR])
给出整数,返回对应字符。如:
SQL> select chr(54740) zhao,chr(65) chr65 from dual;
ZH C
--   -
赵 A
3、CONCAT(<c1>,<c2>)
返回字符串c1与字符串c2合并后的值。例如:
SQL> select concat('010-','8801 8159')||'转23' 赵元杰电话 from dual;
赵元杰电话
-----------------
010-8801 8159转23
4、INITCAP(<c1>)
返回字符串c1 并第一个字母变为大写。例如:
SQL> select initcap('simth') upp from dual;
UPP
-----
Simth
5、INSTR(<c1>,<c2>[,<I>[,<j>] ] )
在一个字符串中搜索指定的字符,返回发现指定的字符的位置。
C1: 被搜索的字符串
C2: 希望搜索的字符串
I: 搜索的开始位置,缺省是1
J: 出现的位置,缺省是1。
SQL> SELECT INSTR ('Oracle Training', 'ra', 1, 2) "Instring" FROM DUAL;
 Instring
----------
        9
6、INSTRB(<c1>,<c2>[,<I>[,<j>] ] )
除了返回的字节外 ,与INSTR 相同,
7、LENGTH( <c> )
返回字符串 c 的长度。
SQL> l
 1 select name,length(name),addr,length(addr),sal,length(to_char(sal))
 2* from nchar_tst
SQL> /
NAME LENGTH(NAME) ADDR      LENGTH(ADDR) SAL LENGTH(TO_CHAR(SAL))
------ ------------ ---------------- ------------ ---------- ---------------- 
赵元杰      3        北京市海淀区         6         99999.99    8
8、LENGTHB( <c> )
以字节返回字符串的字节数。
SQL> select name,lengthb(name),length(name) from nchar_tst;
NAME   LENGTHB(NAME) LENGTH(NAME)
------ ------------- ------------
赵元杰             6            3
9、LOWER ( <c> )
返回字符串并将所有字符变为小写。
SQL> select lower('AaBbCcDd') AaBbCcDd from dual;
AABBCCDD
--------
aabbccdd
10、UPPER( <c>)
与 LOWER 相反,将给出字符串变为大写。如:
SQL> select upper('AaBbCcDd') AaBbCcDd from dual;
AABBCCDD
--------
AABBCCDD
11、RPAD和LPAD(粘贴字符)
RPAD(string,Length[,'set'])
LPAD(string,Length[,'set'])

      RPAD在列的右边粘贴字符;
      LPAD在列的左边粘贴字符。
例1:
SQL>select   RPAD(City,35,'.'),temperature    from weather;
        RPAD(City,35,'.')            temperature
        -------------------------- ----------------
           CLEVELAND......                    85
           LOS ANGELES..                     81
          .........................
        (即不够35个字符用'.'填满)
12、LTRIM(左截断)RTRIM(右截断) 函数
LTRIM (string [,’set’])
Left TRIM (左截断)删去左边出现的任何set 字符。
RTRIM (string [,’set’])
Right TRIM (右截断)删去右边出现的任何set 字符。
例1:
SELECT RTRIM (‘Mother Theresa, The’, ‘The’) “Example of Right
Trimming” FROM DUAL;
Example of Right
----------------
Mother Theresa,
13、SUBSTR Substr(string,start[,Count])
取子字符串中函数
对字串(或字段),从start字符 开始,连续取 count 个字符并返回结果,如果没有指count则一直取到尾。
select phone,substr(phone,1,3) || ‘0’ || substr(phone,4)
from telecommunication where master=’中国电信’;
14、SUBSTRB(string,start[,Count])
对字串(或字段),从start字节 开始,连续取 count 个字节并返回结果,如果没有指count则一直取到尾。
15、REPLACE (‘string’ [,’string_in’,’string_out’])
String: 希望被替换的字符串或变量。
String_in: 被替换字符串。
String_out: 要替换字符串。
SQL> select replace('Informaix中国公司','Informaix','IBM Informix')
 2 IBM数据库 from dual;
IBM数据库
--------------------
IBM Informix中国公司
16、SOUNDEX( <c> )
返回一个与给定的字符串读音相同的字符串(不管拼写是否一样)。
SELECT DPL_NAME FROM DENIED_PARTIES_LIST WHERE
SOUNDEX(DPL_NAME) = SOUNDEX(‘Saddam Hussain’) ;
DPL_NAME
----------------------------------------------
Al Husseni
Sadda Al Sada.
17、REPLACE (‘string’ [,’string_in’,’string_out’])
String:希望被替换的字符串或变量。
String_in: 被替换字符串。
String_out: 要替换字符串。
SELECT REPLACE (‘Oracle’, ‘Or’, ‘Mir’) “Example “ FROM DUAL;
Example
-------
Miracle
18、TRIM( [<leading>] <trailing> FROM <trim_char> )
TRIM可以使你对给定的字符串进行裁剪(前面,后面或前后)。

如果指定 LEADING, Oracle 从trim_char 中裁剪掉前面的字符;

如果指定TRAILING, Oracle 从trim_char 中裁剪掉尾面的字符;

如果指定两个都指定或一个都没有给出,Oracle从trim_char 中裁剪掉前面及尾面的字符;

如果不指定 trim_character, 缺省为空格符;

如果只指定trim_source, Oracle Oracle从trim_char 中裁剪掉前面及尾面的字符。

例子:将下面字符串中的前面和后面的‘0‘字符都去掉:

SELECT TRIM (0 FROM 0009872348900) "TRIM Example" FROM DUAL;


TRIM example

--------------------------------

98723489
4.2、单记录数字函数
函数 说明 
Value1 + value2 加 
Value1 - value2 减 
Value1 * value2 乘 
Value1 / value2 除 
ABS(value) 绝对值 
CEIL(value) 大于或等于value的最小整数 
COS(value) 余弦 
COSH(value) 反余弦 
EXP(value) e的value次幂 
FLOOR(value) 小于或等于value的最大整数 
LN(value) value的自然对数 
LOG(value) value的以10为底的对数 
MOD(value,divisor) 求模 
NVL(value,substitute) value为空时以substitute代替 
POWER(value,exponent) value的exponent次幂 
ROUND(value,precision) 按precision 精度4舍5入 
SIGN(value) value为正返回1;为负返回-1;为0返回 0. 
SIN(value) 余弦 
SINH(value) 反余弦 
SQRT(value) value 的平方根 
TAN(value) 正切 
TANH(value) 反正切 
TRUNC(value,按precision) 按照precision 截取value 
VSIZE(value) 返回value在ORACLE的存储空间大小

1、ABS( <n> )
返回指定值的绝对值。如:
SQL> select abs(100),abs(-100) from dual;
 ABS(100) ABS(-100)
---------- ----------
       100        100
2、ACOS( <n> )
给出反余弦的值。如:
SQL> Select acos(-1) acos from dual;
      ACOS
----------
3.14159265
3、ASIN( <n> )
给出反正弦的值。如:
SQL> select asin(-1) "arc sine" from dual;
 arc sine
----------
-1.5707963
4、ATAN ( <N> )
返回一个数字的反正切值。如:
SQL> select atan(-1) "arc tangent" from dual;
arc tangent
-----------
 -.78539816
5、CEIL( <n> )
返回大于或等于给出数字的最小整数。如:
SQL> select ceil(3.14159) from dual;
CEIL(3.14159)
-------------
4
6、COS ( <n> )
返回一个数字余弦值。如:
SQL> select cos(-3.1415926) from   dual;
COS(-3.1415926)
---------------
-1
7、COSH ( <n> )
返回一个数字双曲余弦值。如:
SQL> select cosh(20) cosh from dual;
     COSH
----------
 242582598
8、EXP ( <n> )
返回一个数字 e 的 n 次方的值。如:
SQL> select exp(2),exp(1) from dual;
EXP(2)      EXP(1)
----------       ----------
 7.3890561 2.71828183
9、FLOOR ( <n> )
对给定的数字取整数,如:
SQL> select floor(123.45),floor(45.56) from dual;
FLOOR(123.45) FLOOR(45.56)
-------------    ------------
45
10、LN( <n> )
返回一个数字的对数值,n 是大于 0 的数字,如:
SQL> select ln(1),ln(2),ln(3) from dual;
     LN(1)      LN(2)      LN(3)
----------   ----------   ----------
         0   .693147181   1.09861229
11、LOG( <n1>, <n2> )
返回一个以n1为底的n2的对数,n1不是0或1的正数。如:
SQL> select log(2,1),log(2,2) from dual;
 LOG(2,1)     LOG(2,2)
----------     ----------
1
12、MOD( <n1>,<n2> )
SQL> Select mod(10,3), mod(10,2), mod(10,4) from dual;
 MOD(10,3) MOD(10,2) MOD(10,4)
----------    ----------     ----------
         1          0          2
13、POWER ( <n1>, <n2> )
返回 n1 的 n2 次方值,如:
SQL> select power(2,10),power(3,3) from dual;
POWER(2,10)   POWER(3,3)
-----------      ----------
27
14、ROUND(value,precision) 
按照指定的精度进行舍入;
select round(55.5),round(-55.5),trunc(55.5),trunc(-55.5)
from dual;
round(55.5) round(-55.5) trunc(55.5) trunc(-55.5)
----------- ------------ ----------- -------------
       56             -56         55         -55
15、SIGN(<n>)
取数字n 的符号,大于0 返回 1;小于0 返回-1; 等于0 返回0。 如:
例:
select sign(123), sign(-100),sign(0) from dual;
sign(123) sign(-100) sign(0)
---------- ---------- ----------
      1           -1         0
16、SIN ( <n> )
返回一个数字的正弦值。如:
SQL> select sin(1.57079) from dual;
SIN(1.57079)
------------
        1
17、SINH( <n> )
返回双曲余弦的值,如:
SQL> select sin(20),sinh(20) from dual;
   SIN(20)   SINH(20)
----------     ----------
.912945251   242582598
18、SQRT( <n> )
返回 数字 n 的根,如:
SQL> select sqrt(64),sqrt(10) from dual;
 SQRT(64)   SQRT(10)
----------   ----------
         8   3.16227766
19、TAN( <n> )
返回数字 n的正切值,如:
SQL> select tan(20),tan(10) from dual;
TAN(20)       TAN(10)
----------        ----------
2.23716094 .648360827
20、TANH( <n> )
返回数字 n的双曲正切值,如:
SQL> select tanh(20),tan(20) from dual;
 TANH(20)     TAN(20)
----------      ----------
         1    2.23716094
21、TRUNC(value,precision) 
按照指定的截取一个数。如:
SQL> SELECT TRUNC (124.16666, -2) trunc1, trunc(124.16666,2) from dual;
    TRUNC1 TRUNC(124.16666,2)
---------- ------------------
124.16
4.3、单记录日期函数
Oracle 用到的日期函是:
   函   数      描      述 
ADD_MONTH 在日期date上增加count个月 
GREATEST(date1,date2,. . .) 从日期列表中选出最晚的日期 
LAST_DAY( date ) 返回日期date 所在月的最后一天 
LEAST( date1, date2, . . .) 从日期列表中选出最早的日期 
MONTHS_BETWEEN(date2,date1) 给出 Date2 - date1 的月数(可以是小数) 
NEXT_DAY( date,’day’) 给出日期date之后下一天的日期,这里的day为星期,如: MONDAY,Tuesday等。 
NEW_TIME(date,’this’,’other’) 给出在this 时区=Other时区的日期和时间 
ROUND(date,’format’) 未指定format时,如果日期中的时间在中午之前,则将日期中的时间截断为12 A.M.(午夜,一天的开始),否则进到第二天。时间截断为12 A.M.(午夜,一天的开始),否则进到第二天。 
TRUNC(date,’format’) 未指定format时,将日期截为12 A.M.( 午夜,一天的开始).


1、ADD_MONTHS( <d>,<I> )
增加月份和减去月份,如:
SQL> select to_char( add_months(to_date('199712','yyyymm'), 1),'yyyymm') add_month
 2 from dual;
ADD_MO
------
199801
SQL> select to_char(add_months(to_date('199712','yyyymm'), -1 ),'yyyymm') add_mo
 2 from dual;
ADD_MO
------
199711
2、LAST_DAY( date ) 
返回日期date 所在月的最后一天,如:
SQL> select to_char(sysdate,'yyyy.mm.dd'),to_char((sysdate)+1,'yyyy.mm.dd')
 2 from dual;
TO_CHAR(SY TO_CHAR((S
---------- ----------
2001.05.18 2001.05.19
3、MONTHS_BETWEEN(date2,date1)
给出 Date2 - date1 的月数(可以是小数);
SQL> select months_between('19-12月-1999','19-3月-2000') mon_betw from dual;
 MON_BETW
----------
        -3
SQL> select months_between(to_date('2000.05.20','yyyy.mm.dd'),
 2 to_date('2005.05.20','yyyy.mm.dd') ) mon_bet from dual;
   MON_BET
----------
-60
4、NEW_TIME(date,’this’,’other’) 
给出在this 时区=Other时区的日期和时间
This和other 是时区,它们可以是下面的值:
时区缩写 代表的时区 
AST/ADT 大西洋标准/日期时间 
BST/BDT 白令海标准/日期时间 
CST/CDT 中部标准/日期时间 
GMT 格林威治时间 
HST/HDT 阿拉斯加-夏威夷标准/日期时间 
MST/MDT 山区标准/日期时间 
NST 新大陆标准时间 
PST/PDT 太平洋标准/日期时间 
YST/YDT Yukon标准/日期时间

SQL> select to_char(sysdate,'yyyy.mm.dd hh24:mi:ss') bj_time,
 2   to_char(new_time(sysdate,'PDT','GMT'),'yyyy.mm.dd hh24:mi:ss') los_angles
 3    from dual;
BJ_TIME             LOS_ANGLES
------------------- -------------------
2001.05.19 06:25:25 2001.05.19 13:25:25
5、NEXT_DAY( date,’day’) 
给出日期date和星期x之后计算下一星期x的日期,这里的day为星期,如: MONDAY,Tuesday等。但在中文环境下,要写成’星期x’这样的格式,如:
例:比如今天是5月18日星期五,计算下一个星期五是几号:
SQL> select next_day('18-5月-2001','星期五') nxt_day from dual;
NXT_DAY
----------
25-5月 -01
6、SYSDATE 
用来得到系统的当前日期,如:
SQL> select to_char(sysdate,'dd-mon-yyyy day') from dual;
TO_CHAR(SYSDATE,'DD
-------------------
18-5月 -2001 星期五
7、TRUNC(<date>,[,<fmt>] )
按照 给出的 fmt 的要求将日期截断。如果 fmt=’mi’ 则表示截断掉秒保留至分。如:
SQL> select to_char(trunc(sysdate,'hh'),'yyyy.mm.dd hh24:mi:ss') hh,
 2 to_char(trunc(sysdate,'mi'),'yyyy.mm.dd hh24:mi:ss') hhmm from dual;
HH                  HHMM
------------------- -------------------
2001.05.18 22:00:00 2001.05.18 22:27:00
45、单记录转换函数
   函   数      描      述 
CHARTOROWID 将 字符转换到 rowid类型  
CONVERT 转换一个字符节到另外一个字符节 
HEXTORAW 转换十六进制到raw 类型 
RAWTOHEX 转换raw 到十六进制 
ROWIDTOCHAR 转换 ROWID到字符 
TO_CHAR 转换日期格式到字符串 
TO_DATE 按照指定的格式将字符串转换到日期型 
TO_MULTIBYTE 把单字节字符转换到多字节 
TO_NUMBER 将数字字串转换到数字 
TO_SINGLE_BYTE 转换多字节到单字节

1、CHARTOROWID(<c>)
将字符数据类型转换为ROWID类型,如:
 1* select rowid,rowidtochar(rowid),ename from scott.emp
SQL> /
ROWID                  ROWIDTOCHAR(ROWID)     ENAME
----------------------------------- ---------------------------------------- ----------
AAAFXDAABAAAHVaAAA AAAFXDAABAAAHVaAAA SMITH
AAAFXDAABAAAHVaAAB AAAFXDAABAAAHVaAAB ALLEN
AAAFXDAABAAAHVaAAC AAAFXDAABAAAHVaAAC WARD
2、CONVERT( <c>,<dset>[,<sset>] )
将源字符串sset从一个语言字符集转换到另一个目的dset字符集。
SELECT CONVERT (‘strutz’, ‘ WE8HP’, ‘ F7DEC ‘) “Conversion”
FROM DUAL;
Conversion
---------------
Strutz.
3、HEXTORAW( <x> )
将一个十六进制构成的字符串转化为二进制。如:
Insert into printers( printer_nbr,manufacturer,model,init_string)
Values ( 12,’HP’,’Laserjet’,”HEXTORAW(‘1B45’));
RAWTOHEX( <x> )
将一个二进制构成的字符串转化为十六进制。如:
select rawtohex ( init_string) hext from printers
where model=LaserJet’ and manufacturer=’HP’;
hext
-----------
1B45
4、ROWIDTOCHAR( <x> )
将ROWID数据类型转换为字符类型,见 CHARTOROWID。
5、TO_CHAR(date,’format’)
根据format 重新格式日期date的格式。如:
SQL> select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2001/05/18 23:05:36
日期格式比较多,详细内容请参考原版资料。下面给出常用的日期格式代码:
日期格式代码表
日期代码 格式说明 例子 
AD 或 BC AD=Anno Domini公元,BC=Before Christ公元前。不带点的公元或公元前 ‘YYYY AD’=1999 AD 
A.D. 或B.C. 带点的公元或公元前 ‘YYYY A.D.’=1999 A.D. 
AM或PM AM= ante meridiem 上午,PM=post meridiem下午。不带点的上午或下午 ‘HH12AM’=09AM 
A.M.或P.M. 带点的上午或下午 ‘HH12A.M.’=09A.M. 
DY 星期几的缩写 Mon,Tue,... 
DAY 星期几的全拼 Monday,Tuesday,... 
D 一周的星期几,星期天=1,星期六=7 1,2,3,4,5,6,7 
DD 一月的第几天,1à31 1,2,... 31 
DDD 一年的第几天,1à366 1,2,3,...366 
J 公元前的第几天(从公元前4712起 ?) 2451514,2451515,... 
W 一个月的第几周,1à 5 1,2,3,4,5 
WW,IW 一年的第几周,一年的ISO的第几周 1,2,3,4,... 52 
MM 两为数的月 01,02,03,...12 
MON 月份的缩写 Jan,Feb,Mar ,...Dec 
MONTH 月份的全拼 January,February,... 
RM 罗马数字的月份,I à XII I,II,III,IV,...XII 
YYYY,YYY,YY,Y 四位数的年,三位数的年 1999,999,99,9 
YEAR 年的全拼 Nineteen Ninety-nine 
SYYYY 如果是公元前(BC),年份前负号 -1250 
RR 当前年份的后两位数字 01代表2001年 
HH,HH12 12小时制,1à12 1,2,3,...12 
HH24 24小时制,0à23 0,1,2,3,...23 
MI 一小时中的第几分,0à59 0,1,2,3...59 
SS 一分中的第几秒,0à59 0,1,2,3,...59 
SSSSS 一天中的第几秒,0à86399 0,1,2,3,...86399 
../-;: 标点符号表示法 文字显示 
‘text’ 引号表示法 文字显示

6、TO_DATE(string,’format’) 
将一和字串转换为ORACLE的日期。如:
Insert into demo(demo_key,date_col) Values(1 , to_date(’04-Oct-1999’, ‘DD-Mon-yyyy’) );
7、TO_MULTI_BYTE(<c>)
将字符串中的单字节字符转换为多字节字符, 如:
8、TO_NUMBER(<c>)
将给出的字符转换为数字,如:
SELECT TO_NUMBER (‘1947’) “FISCAL_YEAR” FROM DUAL;
FISCAL_YEAR
-----------
1947
9、TO_MULTI_BYTE(<c>)及TO_SINGLE_BYTE
将单字节转换为多字节或从多字节转换为单字节。
4.6、其它的单记录函数
1、BFILENAME( <dir>, <file> )
指定一个外部二进制文件。如:
INSERT INTO file_tbl VALUES (BFILENAME (’lob_dir1’, ’image1.gif’));

2、CONVERT (‘x’,’desc_set’ [, ‘source_set’])
将x 字段或变量的源 source 转换为 desc,如:
select sid,serial#,username,
DECODE(command,
0,’None’,
2,’Insert’,
3,’Select’,
6,’Update’,
7,’Delete’,
8,’Drop’,
‘Other’) cmd
from v$session where type != ‘BACKGROUND’;
关于DECODE 在优化方面的内容在《Oracle8i/9i 高级数据库管理》中查阅。
3、DUMP( s,[,fmt [, start [, length ] ] ] )
DUMP 函数以fmt 指定的内部数字格式返回一个VARCHAR2类型的值。如:
SQL> col global_name for a30
SQL> col DUMP_STRING for a50
SQL> set lin 200
SQL> select global_name,dump(global_name,1017,8,5) dump_string
 2   from global_name;

GLOBAL_NAME                    DUMP_STRING
------------------------------------- ----------------------------------------------------------------
ORA816.US.ORACLE.COM Typ=1 Len=20 CharacterSet=ZHS16GBK: U,S,.,O,R
4、EMPTY_BLOB() 和 EMPTY_CLOB() 函数
这两个函数都是用来对大数据类型字段进行初始化操作的函数,一般有:
BLOB数据类型 --- EMPTY_BLOB()
CLOB数据类型 --- EMPTY_CLOB()
NCLOB数据类型 --- EMPTY_CLOB()
Insert into proposal
( proposal_id, recipient_name,proposal_name,short_description,
proposal_text,budget , cover_letter )
values(2,’BRAD OHMONT’,’REBUILD FENCE’,NULL,
EMPTY_CLOB(),EMPTY_BLOB(),
BFILENAME(‘proposal_dir’,’P2.DOC’) );
5、GREATEST( <exp_list> )
返回一组表达式中的最大值,即比较字符的编码大小。如:
SQL> select greatest('AA','AB','AC') from dual;
GR
--
AC
SQL> select greatest('啊','安','天') from dual;
GR
--

即 “天”的编码比“安”和“啊”都大。
6、LEAST ( <exp_list> )
返回一组表达式中的最小值,即比较字符的编码大小。如:
SQL> select least('啊','安','天') from dual;
LE
--

7、UID 函数
返回标识当前用户的唯一整数,如:
SQL> show user
USER 为"SYSTEM"
SQL> l
 1* select username,user_id from dba_users where user_id=UID
SQL> /

USERNAME           USER_ID
------------------------------    ----------
SYSTEM                     5
8、USER 函数
返回当前用户的名字,如:
SQL> select user from dual;
USER
------------------------------
SYSTEM
9、USERENV( <opt> )
返回当前用户环境的信息,opt 选项可以是:
ENTRYID 返回当前用户会话的入口ID
SESSIONID 返回当前用户会话的ID
TERMINAL 返回当前系统会话的操作系统标识
OSDBA      如果当前用户有DBA权限,则返回 TRUE
LABLE       返回当前用户会话的标号
LANGUAGE   返回当前用户的语言和区域
CLIENT_INFO 为当前用户会话返回 client-info 域的值,这个值由 
               dbms_application_info,set_client_info 过程来设置。
LANG   以ISO 的三个字符表示当前用户会话所使用的语言。
VSIZE   返回表达式的字节大小。
10、ISDBA 函数
查看当前用户是否是 DBA ,当SYSDBA 角色有效是才返回 TRUE,如:
SQL> show user
USER is "SYSTEM"
SQL> select userenv('ISDBA') from dual;
USEREN
------
FALSE
SQL> connect sys/sys@ora816
Connected.
SQL> select userenv('ISDBA') from dual;
USEREN
------
FALSE
SQL> connect internal
Connected.
SQL> select userenv('ISDBA') from dual;
USEREN
------
TRUE
11、SESSIONID函数
返回审计会话标识,如:
select userenv(‘SESSIONID’) aud_id from dual;
aud_id
---------
47343
12、ENTRYID 函数
返回审计会话入口标识,当initsid.ora 文件中的 audit_trail=TRUE 时可以用,如:
select userenv(‘ENTRYID’) from dual;
USERENV(‘ENTRYID’)
-------------
835641
13、INSTANCE函数
返回当前INSTANCE 的标识,如:
SQL> select userenv('INSTANCE') from dual;
USERENV('INSTANCE')
-------------------
           1
14、LANGUAGE函数
返回当前环境的语言,如:
SQL> select userenv('LANGUAGE') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
15、LANG函数
返回当前环境的语言的缩写,如:
SQL> l
 1* select userenv('LANG') from dual
SQL> /
USERENV('LANG')
----------------------------------------------------
ZHS
16、TERMINAL函数
返回用户的终端或机器的标识,如:
SQL> select userenv('TERMINAL') from dual;
USERENV('TERMINA
----------------
ZHAOYUANJIE
17、VSIZE( <x> )
返回 x 的大小(字节)数,如:
SQL> select vsize(user),user from dual;
VSIZE(USER)   USER
-----------      -----------------------------
          6   SYSTEM
4.7、多记录组函数
1、AVG( [ { DISTINCT | ALL}] )
求平均值,ALL表示对所有求平均值,DISTINCT 只对不 同的求平均值,相同只取一个。
SQL> l
 1* select avg(sal) from emp
SQL> /
 AVG(SAL)
----------
2073.21429
2、MAX( [ { DISTINCT | ALL}] )
求最大值,ALL表示对所有求最大值,DISTINCT 只对不 同的求最大值,相同只取一个。
SQL> select max(sal) from emp;
 MAX(SAL)
----------
      5000
3、MIN( [ { DISTINCT | ALL}] )
求最小值,ALL表示对所有求最小值,DISTINCT 只对不同的求最小值,相同只取一个。
SQL> select min(sal) from emp;
 MIN(SAL)
----------
800
4、STDDEV( [ { DISTINCT | ALL}] )
求标准差,ALL表示对所有求标准差,DISTINCT 只对不同的求标准差,相同只取一个。
SQL> select stddev(sal) from emp;
STDDEV(SAL)
-----------------
 1182.50322
5、VARIANCE( [ { DISTINCT | ALL}] )
求协方差,ALL表示对所有求协方差,DISTINCT 只对不同的求协方差,相同只取一个。
SQL> select variance(sal) from emp;
VARIANCE(SAL)
------------------------
   1398313.87

分享到:
评论

相关推荐

    电子工程0欧姆电阻在PCB设计中的多功能应用

    内容概要:0欧姆电阻在电路设计中有多种重要作用。它不仅可以在PCB上为调试提供便利,还能用于跳线、替代不确定参数的元件以及测量电路的耗电流。此外,在布线困难时可作为应急解决方案。在高频信号环境下,它能充当电感或电容,有助于解决EMC问题。对于地线处理,0欧姆电阻可用于实现单点接地,避免模拟地和数字地直接大面积相连带来的互相干扰问题。在跨接电流回路方面,它可以提供较短的回流路径,减少干扰。同时,0欧姆电阻还适用于配置电路,防止用户误操作跳线或拨码开关,并且在布线、调试、测试、温度补偿等方面有着广泛应用,尤其在EMC对策中表现突出。; 适合人群:电子工程师、硬件设计师以及对电路设计感兴趣的爱好者。; 使用场景及目标:①在PCB设计阶段,利用0欧姆电阻进行灵活的电路调试与优化;②解决高频信号下的EMC问题,确保电路稳定性和抗干扰能力;③实现单点接地,避免不同地线间的相互干扰;④提高电路的可维护性和可靠性,降低生产成本。; 阅读建议:本文详细介绍了0欧姆电阻在电路设计中的多种应用场景,读者应结合具体项目需求来理解和运用这些知识,特别是在面对复杂的电路布局和电磁兼容性问题时,要充分考虑0欧姆电阻的独特优势。

    一个基于SpringBoot+Mybatis+Mysql+Html实现的页面登录案例

    mysql安装教程 一个基于SpringBoot+Mybatis+Mysql+Html实现的页面登录案例.

    全域旅游综合解决方案PPT(71页).pptx

    在探索智慧旅游的新纪元中,一个集科技、创新与服务于一体的整体解决方案正悄然改变着我们的旅行方式。智慧旅游,作为智慧城市的重要分支,旨在通过新一代信息技术,如云计算、大数据、物联网等,为游客、旅游企业及政府部门提供无缝对接、高效互动的旅游体验与管理模式。这一方案不仅重新定义了旅游行业的服务标准,更开启了旅游业数字化转型的新篇章。 智慧旅游的核心在于“以人为本”,它不仅仅关注技术的革新,更注重游客体验的提升。从游前的行程规划、信息查询,到游中的智能导航、个性化导览,再到游后的心情分享、服务评价,智慧旅游通过构建“一云多屏”的服务平台,让游客在旅游的全过程中都能享受到便捷、个性化的服务。例如,游客可以通过手机APP轻松定制专属行程,利用智能语音导览深入了解景点背后的故事,甚至通过三维GIS地图实现虚拟漫游,提前感受目的地的魅力。这些创新服务不仅增强了游客的参与感和满意度,也让旅游变得更加智能化、趣味化。 此外,智慧旅游还为旅游企业和政府部门带来了前所未有的管理变革。通过大数据分析,旅游企业能够精准把握市场动态,实现旅游产品的精准营销和个性化推荐,从而提升市场竞争力。而政府部门则能利用智慧旅游平台实现对旅游资源的科学规划和精细管理,提高监管效率和质量。例如,通过实时监控和数据分析,政府可以迅速应对旅游高峰期的客流压力,有效预防景区超载,保障游客安全。同时,智慧旅游还促进了跨行业、跨部门的数据共享与协同合作,为旅游业的可持续发展奠定了坚实基础。总之,智慧旅游以其独特的魅力和无限潜力,正引领着旅游业迈向一个更加智慧、便捷、高效的新时代。

    工业自动化中模拟量滤波防抖PLC程序的实现与应用

    内容概要:本文详细介绍了如何通过PLC程序实现模拟量滤波防抖,确保电流、电压和热电阻等信号的准确采集。核心算法采用掐头去尾平均法,即去掉一组数据中的最大值和最小值后取剩余数据的平均值,以消除因环境干扰导致的异常值。文中提供了详细的代码实现步骤,包括数据结构定义、主程序逻辑、间接寻址方法以及参数配置。此外,还讨论了如何通过死区判断和上升率限制进一步优化滤波效果,提高系统的稳定性和响应速度。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是熟悉PLC编程和模拟量信号处理的专业人士。 使用场景及目标:适用于需要高精度模拟量信号采集的工业控制系统,如电力、化工、制造业等领域。主要目标是提升数据采集的准确性和稳定性,减少外部干扰带来的误差。 其他说明:文中提供的代码示例基于西门子S7-1200/1500系列PLC,但相关原理和方法同样适用于其他品牌的PLC。建议在实际应用中根据具体情况调整参数设置,以达到最佳效果。

    【人工智能大模型发展】从技术突破到场景落地:大模型发展图谱与DeepSeek创新应用解析

    内容概要:本文详细介绍了大模型的发展现状与未来趋势,尤其聚焦于DeepSeek这一创新应用。文章首先回顾了人工智能的定义、分类及其发展历程,指出从摩尔定律到知识密度提升的转变,强调了大模型知识密度的重要性。随后,文章深入探讨了DeepSeek的发展路径及其核心价值,包括其推理模型、思维链技术的应用及局限性。此外,文章展示了DeepSeek在多个行业的应用场景,如智能客服、医疗、金融等,并分析了DeepSeek如何赋能个人发展,具体体现在公文写作、文档处理、知识搜索、论文写作等方面。最后,文章展望了大模型的发展趋势,如通用大模型与垂域大模型的协同发展,以及本地部署小模型成为主流应用渠道的趋势。 适合人群:对人工智能和大模型技术感兴趣的从业者、研究人员及希望利用DeepSeek提升工作效率的个人用户。 使用场景及目标:①了解大模型技术的最新进展和发展趋势;②掌握DeepSeek在不同领域的具体应用场景和操作方法;③学习如何通过DeepSeek提升个人在公文写作、文档处理、知识搜索、论文写作等方面的工作效率;④探索大模型在特定行业的应用潜力,如医疗、金融等领域。 其他说明:本文不仅提供了理论知识,还结合实际案例,详细介绍了DeepSeek在各个场景下的应用方式,帮助读者更好地理解和应用大模型技术。同时,文章也指出了当前大模型技术面临的挑战,如模型的局限性和数据安全问题,鼓励读者关注技术的持续改进和发展。

    电力负荷预测中LSSVM及其改进算法的性能对比研究

    内容概要:本文详细比较了四种基于最小二乘支持向量机(LSSVM)的短期电力负荷预测算法:原始LSSVM、SSA-LSSVM、VMD-LSSVM以及VMD-SSA-LSSVM。通过对这些算法的具体实现和性能评估,展示了每种方法的优势和局限性。实验结果显示,随着算法复杂度的增加,预测精度显著提高,特别是VMD-SSA-LSSVM在RMSE和MAPE等评价指标上表现出色,达到了接近真实值的预测效果。然而,这也伴随着计算成本的大幅上升。 适合人群:从事电力系统调度、数据分析、机器学习领域的研究人员和技术人员。 使用场景及目标:适用于需要进行短期电力负荷预测的研究项目或实际应用,旨在提高预测准确性,减少因天气变化、节假日等因素带来的不确定性影响。 其他说明:文中提供了详细的Python代码片段,帮助读者理解和复现相关算法。同时提醒,在选择模型时需综合考虑预测精度与计算效率之间的平衡。

    基于Python+Django的电影推荐系统:融合机器学习与深度学习的全栈实现

    内容概要:本文详细介绍了一种基于Python和Django框架构建的电影推荐系统。该系统不仅涵盖了用户端的基本功能(如登录、搜索、浏览、评论、评分、收藏),还包括管理端的增删改查操作。后端使用Python和Django框架,结合MySQL数据库,前端采用HTML、CSS和JavaScript实现交互界面。推荐算法方面,利用机器学习和深度学习技术,特别是协同过滤和内容过滤相结合的方式,确保推荐结果的多样性和精准性。此外,文中还讨论了一些常见的技术挑战及其解决方案,如用户冷启动问题、前端交互效果优化、数据库配置错误等。 适合人群:具有一定编程经验的Web开发者和技术爱好者,尤其是对Django框架、机器学习和深度学习感兴趣的读者。 使用场景及目标:适用于希望深入了解并实现一个完整的电影推荐系统的个人或团队。主要目标是掌握如何整合前后端技术,运用机器学习和深度学习算法提升用户体验。 其他说明:文中提供了大量代码片段和实践经验,帮助读者更好地理解和实施各个技术细节。同时强调了系统优化的重要性,如通过Redis缓存提高查询效率,使用AJAX实现无缝加载等。

    MATLAB实现V2G光储充一体化微网多目标优化调度策略及其应用

    内容概要:本文探讨了基于MATLAB平台的V2G(车辆到电网)光储充一体化微网多目标优化调度策略。该策略旨在通过建立光伏微网中以经济性和并网负荷波动率为双目标的蓄电池和V2G协同调度模型,利用粒子群优化(PSO)算法求解模型。文中详细介绍了模型搭建、核心算法实现、运行模式对比以及算例分析。结果显示,V2G模式能够显著提高系统的经济性和稳定性,减少蓄电池的需求量,优化三方(电网、微网调度中心、电动汽车用户)的利益。 适合人群:从事电力系统优化、智能电网研究的专业人士,尤其是对MATLAB编程有一定基础的研究人员和技术人员。 使用场景及目标:适用于需要优化光储充一体化微网调度策略的研究机构和企业。目标是在保证系统经济运行的同时,稳定并网负荷,减少波动,从而提升整体性能。 其他说明:代码注释详尽,包含并行计算框架、电池寿命模型和可视化模块等多个亮点。通过实际案例验证,证明了V2G模式的有效性。

    三菱FX3U五轴钻孔机PLC与威纶通触摸屏程序解析及优化技巧

    内容概要:本文详细介绍了三菱FX3U五轴钻孔机的PLC程序和威纶通触摸屏配置,涵盖梯形图编程、IO分配表、参数设置、自动补偿机制以及异常处理等方面。文章通过具体的代码实例展示了如何实现加工循环、参数动态调整、安全防护等功能,并分享了调试过程中遇到的问题及解决方案。此外,还提供了完整的工程文件,便于读者快速理解和应用。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对三菱PLC和威纶通触摸屏有一定了解的人群。 使用场景及目标:帮助读者掌握五轴钻孔机的控制系统设计方法,提高编程效率和设备稳定性,适用于类似机床控制系统的开发和维护。 其他说明:文中提到的许多技巧和注意事项来源于作者的实际工作经验,对于初学者来说非常有价值。同时,提供的完整工程文件可以作为参考模板,节省开发时间和成本。

    matlab开发相关资源.m

    matlab开发相关资源

    a383d-main.zip

    a383d-main.zip

    智慧小区解决方案.pptx

    智慧小区解决方案.pptx

    Seafile 基于 Qt 的 GUI 客户端

    Seafile 基于 Qt 的 GUI 客户端

    无人驾驶车辆局部路径规划:基于Matlab的Astar与RRT算法仿真及优化

    内容概要:本文详细介绍了无人驾驶车辆在局部路径规划中的两种经典算法——Astar和RRT的Matlab实现及其优化。首先,文章解释了Astar算法的核心思想,即通过启发函数进行路径搜索,并针对U型障碍等问题提出了双向搜索策略和动态权重调节。接着,文章探讨了RRT算法的特点,如随机生长特性和路径平滑处理,解决了路径过于曲折的问题。此外,还提出了一种混合算法HRA*,通过改进OPEN集的维护方式,提高了算法效率。最后,通过对不同场景的仿真测试,展示了两种算法在复杂环境中的性能差异,并提供了详细的调参经验和优化建议。 适合人群:对无人驾驶技术和路径规划感兴趣的科研人员、工程师以及有一定编程基础的学习者。 使用场景及目标:适用于研究无人驾驶车辆在复杂环境中的路径规划问题,帮助研究人员理解和优化Astar和RRT算法,提高路径规划的效率和准确性。 其他说明:文中附有大量Matlab代码片段和仿真结果图表,便于读者理解和复现实验。同时,提供了关于栅格地图分辨率、车辆动力学参数等方面的实用建议,有助于实际系统的部署和优化。

    选择.txt

    选择

    西门子200Smart与维纶触摸屏在疫苗车间控制系统的应用:配液、发酵、纯化及CIP清洗工艺详解

    内容概要:本文详细介绍了西门子200Smart PLC与维纶触摸屏在某疫苗车间控制系统的具体应用,涵盖配液、发酵、纯化及CIP清洗四个主要工艺环节。文中不仅展示了具体的编程代码和技术细节,还分享了许多实战经验和调试技巧。例如,在配液罐中,通过模拟量处理确保温度和液位的精确控制;发酵罐部分,着重讨论了PID参数整定和USS通讯控制变频器的方法;纯化过程中,强调了双PID串级控制的应用;CIP清洗环节,则涉及复杂的定时器逻辑和阀门联锁机制。此外,文章还提到了一些常见的陷阱及其解决方案,如通讯干扰、状态机切换等问题。 适合人群:具有一定PLC编程基础的技术人员,尤其是从事工业自动化领域的工程师。 使用场景及目标:适用于需要深入了解PLC与触摸屏集成控制系统的工程师,帮助他们在实际项目中更好地理解和应用相关技术和方法,提高系统的稳定性和可靠性。 其他说明:文章提供了大量实战经验和代码片段,有助于读者快速掌握关键技术点,并避免常见错误。同时,文中提到的一些优化措施和调试技巧对提升系统性能非常有帮助。

    Prosemirror 是一个基于 ContentEditable 的所见即所得 HTML 编辑器,功能强大,支持协作编辑和自定义文档模式Prosemirror 库由多个单独的模块

    Prosemirror 是一个基于 ContentEditable 的所见即所得 HTML 编辑器,功能强大,支持协作编辑和自定义文档模式Prosemirror 库由多个单独的模块

    直线感应电机瞬态磁场仿真教程:Maxwell 16.0与ANSYS 2020关键技术解析

    内容概要:本文详细介绍了使用Maxwell 16.0和ANSYS 2020进行直线感应电机瞬态磁场仿真的方法和技术要点。首先强调了建模前的准备工作,包括初级线圈布置、次级导体材料选择、气隙宽度等参数的确定。然后针对Maxwell 16.0用户,讲解了坐标系的选择(笛卡尔坐标系)、初级绕组绘制、运动参数设置、网格剖分优化以及边界条件的正确配置。对于ANSYS 2020用户,则着重讲述了如何利用Maxwell模块建立模型并在Mechanical中进行电磁力耦合分析,包括参数化扫描设置、气隙厚度扫描、磁密云图动态更新等技巧。此外,文中还分享了许多实用的经验和注意事项,如避免常见的参数设置错误、提高仿真精度的方法、处理推力波动等问题的具体措施。 适合人群:从事电机设计与仿真的工程师、研究人员,尤其是有一定Maxwell和ANSYS使用基础的技术人员。 使用场景及目标:帮助用户掌握直线感应电机瞬态磁场仿真的全流程,确保仿真结果的准确性,提升工作效率。具体应用场景包括但不限于新电机设计验证、现有电机性能优化、故障诊断等。 其他说明:文中提供了大量具体的命令和脚本示例,便于读者直接应用到实际工作中。同时,作者结合自身丰富的实践经验,给出了许多宝贵的建议和警示,有助于读者避开常见陷阱,顺利完成仿真任务。

    【Windows系统】Win10部署DeepSeek 7B模型:Ollama框架安装与模型运行体验

    内容概要:本文详细介绍了在Windows 10上部署DeepSeek 7B模型的步骤。首先,需安装Ollama框架,通过访问官网下载并运行安装包,安装路径默认为C盘且不可更改。安装完成后可通过命令提示符验证是否安装成功。接着,部署DeepSeek 7B模型,从指定网站下载模型后,使用命令`ollama run deepseek-r1:7b`启动模型,系统将自动下载模型文件(约4.7GB),建议开启科学上网以加快下载速度。部署完成后,可以通过ChatBox客户端选择Ollama API和DeepSeek 7B模型进行问答测试。最后,附录提供了DeepSeek 7B的部署要求及硬件配置建议。 适合人群:对AI模型部署有一定兴趣,尤其是希望在本地环境中运行大型语言模型的研究人员和开发者。 使用场景及目标:①为研究人员和开发者提供详细的步骤指导,确保他们能够在本地环境中成功部署DeepSeek 7B模型;②帮助用户理解部署过程中涉及的各项命令和工具的使用方法;③为后续基于DeepSeek 7B模型的应用开发打下基础。 阅读建议:由于部署过程涉及多个步骤和命令行操作,建议读者在实际操作前仔细阅读每一步骤,并根据自身硬件条件调整配置。此外,对于初次接触此类部署的用户,建议先熟悉相关命令行工具的使用,确保顺利完成部署。

    基于Cruise软件的增程混动串联模型及A-ECMS控制策略仿真研究

    内容概要:本文深入探讨了基于Cruise软件构建的增程混动串联模型及其A-ECMS控制策略的仿真方法。首先介绍了增程混动架构的特点,即通过发动机发电并由电能驱动车辆行驶,旨在提高动力输出效率和经济性。接着详细阐述了Cruise/Simulink联合仿真平台的搭建过程,包括使用C++编译器将策略模型编译为DLL文件并与Cruise集成。文中还特别强调了A-ECMS控制策略的具体实现,如根据功率需求和电池状态进行能量分配,以及模式切换逻辑的设计。此外,文章提到了模型使用的注意事项,如避免路径中含有中文字符等问题,并指出该模型主要用于学习目的,实际应用需根据具体情况进行调整。 适合人群:从事混合动力汽车研究的技术人员、高校师生及相关领域的研究人员。 使用场景及目标:①帮助理解和掌握增程混动系统的工作原理;②为开发高效的混合动力控制系统提供理论依据和技术支持;③作为教学工具辅助学生学习混合动力汽车的相关知识。 其他说明:该模型虽然具有较高的学术价值,但在应用于实际工程时仍需针对具体车型进行修改和完善。

Global site tag (gtag.js) - Google Analytics