工作中,Oracle常用函數

来源:https://www.cnblogs.com/xiezhr/archive/2023/05/08/17343493.html
-Advertisement-
Play Games

(工作中,Oracle常用函數) 1、序言 Oracle提供了不少內置函數,熟練使用這些函數,可以大大提高我們工作效率。函數可以接受0個或多個入參,並返回一個輸出結果。 2、Oracle函數分類 Oracle函數分為單行函數和聚合函數 單行函數:對每一個函數應用在表的記錄中時,只能輸入一行結果,返回 ...


目錄

1、序言

Oracle提供了不少內置函數,熟練使用這些函數,可以大大提高我們工作效率。函數可以接受0個或多個入參,並返回一個輸出結果。

2、Oracle函數分類

Oracle函數分為單行函數和聚合函數

  • 單行函數:對每一個函數應用在表的記錄中時,只能輸入一行結果,返回一個結果。

    常見的單行函數有如下四種

    ① 數值型函數:對數字進行計算,返回一個數字。

    ②字元函數:對字元串操作。

    ③轉換函數:可以將一種數據類型轉換為另外一種數據類型。

    ④日期函數:對日期和時間進行處理。

    ⑤ null函數:處理null值的相關函數

  • 聚合函數:聚合函數同時可以對多行數據進行操作,並返回一個結果。

3、數值型函數

3.1 求絕對值函數

abs(n)函數

用於返回絕對值

SQL> select abs(10),abs(-10),abs('100') from dual;
 
   ABS(10)   ABS(-10) ABS('100')
---------- ---------- ----------
        10         10        100

3.2 求餘函數

mod(n2,n1)

返回n2除以n1的餘數

SQL> select mod(5,2),mod(8/3,3),mod('10',2),mod(-10,6),mod(3,0) from dual;
 
  MOD(5,2) MOD(8/3,3) MOD('10',2) MOD(-10,6)   MOD(3,0)
---------- ---------- ----------- ---------- ----------
         1 2.66666666           0         -4          3

3.3 判斷數值正負函數

sign(n) 函數

n為正返回1,n為0返回0,n為負返回-1

SQL> select sign(-2),sign(2),sign(0.0),sign(-3*2) from dual;
 
  SIGN(-2)    SIGN(2)  SIGN(0.0) SIGN(-3*2)
---------- ---------- ---------- ----------
        -1          1          0         -1

3.4 三角函數

cos(n):返回餘弦值 acos(n):返回反餘弦值 sin(n):返回正弦值 asin(n) tan(n):返回正切值 atan(n):返回反正切值

SQL> select cos(3.1415926),acos(1),sin(0.5),asin(1),tan(1),atan(1) from dual;
 
COS(3.1415926)    ACOS(1)   SIN(0.5)    ASIN(1)     TAN(1)    ATAN(1)
-------------- ---------- ---------- ---------- ---------- ----------
-0.99999999999          0 0.47942553 1.57079632 1.55740772 0.78539816

3.5 返回以指定數值為準整數的函數

ceil(n)函數

返回大於等於n的最小整數

SQL> select ceil(15),ceil(15.6),ceil(-10.2),ceil('10.2') from dual;
 
  CEIL(15) CEIL(15.6) CEIL(-10.2) CEIL('10.2')
---------- ---------- ----------- ------------
        15         16         -10           11

floor(n)函數

返回小於或等於n的最大整數

SQL> select floor(15),floor(15.6),floor(-10.2),floor('10.2') from dual;
 
 FLOOR(15) FLOOR(15.6) FLOOR(-10.2) FLOOR('10.2')
---------- ----------- ------------ -------------
        15          15          -11            10

3.6 指數、對數函數

sqrt(n)函數

返回n的平方根

SQL> select sqrt(4),sqrt('8.9') from dual;
 
   SQRT(4) SQRT('8.9')
---------- -----------
         2 2.983286778

power(n1,n2)函數

返回n1的n2次冪

SQL> select power(3,2),power('4',2),power(2.5,4),power(-5,2)from dual;
 
POWER(3,2) POWER('4',2) POWER(2.5,4) POWER(-5,2)
---------- ------------ ------------ -----------
         9           16      39.0625          25

log(n1,n2)

返回以n1為底n2的對數

SQL> select log(10,100),log(2.4,'10') from dual;
 
LOG(10,100) LOG(2.4,'10')
----------- -------------
          2 2.63011686739

3.7 四捨五入函數

round(x[,y]) 函數

  • 會四捨五入。在預設 y 時,預設 y=0;
  • y 是正整數,就是四捨五入到小數點後 y 位;
  • y 是負整數,四捨五入到小數點左邊|y|位
SQL> select round(3.564),round(3.456,2),round(3456.345,-2) from dual;
 
ROUND(3.564) ROUND(3.456,2) ROUND(3456.345,-2)
------------ -------------- ------------------
           4           3.46               3500

trunc(x[,y])函數

  • 直接截取,不四捨五入。在預設 y 時,預設 y=0;
  • Y是正整數,就是四捨五入到小數點後 y位;
  • y 是負整數,四捨五入到小數點左邊|y|位。
SQL> select trunc(3.564),trunc(3.456,2),trunc(3456.345,-2) from dual;
 
TRUNC(3.564) TRUNC(3.456,2) TRUNC(3456.345,-2)
------------ -------------- ------------------
           3           3.45               3400

4 字元型函數

4.1 ASSCII與字元轉換函數

ASSCII(x) 函數

返回字元x首字母的ASSCII值

SQL> select ascii('榮'),ascii('Xiezhr'),ascii('xiezhr') from dual;
 
 ASCII('榮') ASCII('XIEZHR') ASCII('XIEZHR')
----------- --------------- ---------------
      51417              88             120

chr(n)函數

與ASSCII函數相反,將ASSCII碼轉換為字元

SQL> select chr(51417),chr(88),chr(120) from dual;
 
CHR(51417) CHR(88) CHR(120)
---------- ------- --------
榮         X       x

4.2 獲取字元串長度

length(string)

返回string所占的位元組長度,單位是位元組

SQL> select length('公眾號XiezhrSpace') from dual;
 
   LENGTH('公眾號XIEZHRSPACE')
---------------------------
                         14

lengthb(string)

返回string所占的字元長度,單位是字元

SQL> select lengthb('公眾號XiezhrSpace') from dual;
 
   LENGTHB('公眾號XIEZHRSPACE')
----------------------------
                          17

註意:上面例子,字元串是統一個,但是兩個函數返回的值是不一樣的。所以可以根據length(‘string’)=lengthb(‘string’)判斷字元串是否含有中文

4.3 字元串截取函數

  • substr(x,start[,length])

  • 從start處開始,截取length個字元;

  • 預設length,預設到結尾;

  • length為正,從左邊截取;

  • length為負從右邊截取

SQL> select substr('公眾號XiezhrSpace',4) a,substr('公眾號XiezhrSpace',4,11) b,substr('公眾號XiezhrSpace',-11,11) c from dual;
 
A           B           C
----------- ----------- -----------
XiezhrSpace XiezhrSpace XiezhrSpace
  • substrb(x,start[,length])

函數與substr不同之處是按照位元組截取

SQL> select substrb('公眾號XiezhrSpace',7) a,substrb('公眾號XiezhrSpace',7,17) b,substrb('公眾號XiezhrSpace',-11,11) c from dual;
 
A           B           C
----------- ----------- -----------
XiezhrSpace XiezhrSpace XiezhrSpace

還有幾個截取函數,但是不常用

  • substrc 以Unicode字元為單位截取
  • substr4 以UCS4代碼點位單位
  • substr2 以UCS2代碼點位單位

4.4 字元串連接函數

concat(x,y)

  • 效果和“||”連接一樣,將字元串x和y連接起來
SQL> select concat('公眾號','XiezhrSpace'),'公眾號'||'XiezhrSpace' from dual;
 
CONCAT('公眾號','XIEZHRSPACE') '公眾號'||'XIEZHRSPACE'
------------------------------ -----------------------
公眾號XiezhrSpace              公眾號XiezhrSpace

4.5 字元串搜索函數

  • instr( string1, string2 [, start_position [, n ] ] )

  • 從start_position開始,目標字元串string2在源字元串string1中出現第n次的位置;

  • start_position為正表示從string1左邊開始,為負表示從string1右邊開始;

  • start_position、n可以去掉,表示string2在string1第一次出現位置

SQL> select instr('公眾號XiezhrSpace','Xiezhr') a,instr('公眾號XiezhrSpace','xiezhr') b,instr('公眾號XiezhrSpace','Xiezhr',2,1) c,instr('公眾號XiezhrSpace','Xiezhr',-1,1) d from dual;
 
         A          B          C          D
---------- ---------- ---------- ----------
         4          0          4          4
  • instrb( string1, string2 [, start_position [, n ] ] )

以位元組為單位搜索

SQL> select instrb('公眾號XiezhrSpace','Xiezhr') a,instrb('公眾號XiezhrSpace','xiezhr') b,instrb('公眾號XiezhrSpace','Xiezhr',2,1) c,instrb('公眾號XiezhrSpace','Xiezhr',-1,1) d from dual;
 
         A          B          C          D
---------- ---------- ---------- ----------
         7          0          7          7

跟字元串截取函數一樣,還有幾個搜索函數

  • instrc 以Unicode字元為單位截取
  • instr4 以UCS4代碼點位單位
  • instr2 以UCS2代碼點位單位

4.6 字母大小寫轉換函數

  • upper(n)函數

將字元串n全部轉換為大寫

SQL>  select upper('xiezhrspace'),upper('x') from dual;
 
UPPER('XIEZHRSPACE') UPPER('X')
-------------------- ----------
XIEZHRSPACE          X
  • lower(n)函數

將字元串n全部轉換為小寫

SQL> select lower('X'),lower('XIEZHRSPACE') from dual;
 
LOWER('X') LOWER('XIEZHRSPACE')
---------- --------------------
x          xiezhrspace

4.7 字元串替換函數

replace(char,search_string[,replacement_string])

  • char是目標字元串
  • earch_string是要替換的字元串
  • replacement_string參數可選,用它替換被搜索到的字元串,如果參數不用表示從char中刪除earch_string字元串**
SQL> select replace('公眾號XiezhrSpace','公眾號','公眾號:')a,replace('公眾號XiezhrSpace','公眾號')b from dual;
 
A                  B
------------------ -----------
公眾號:XiezhrSpace XiezhrSpace

4.8 字元串填充函數

  • **rpad(exp1,n[,exp2]) **

在字元串exp1右邊用字元串exp2填充,直到整個字元串長度為n為止;如果exp2參數沒有,則以空格填充

SQL> select rpad('xiezhr',10,'0'),rpad('xiezhr',10) from dual;
 
RPAD('XIEZHR',10,'0') RPAD('XIEZHR',10)
--------------------- -----------------
xiezhr0000            xiezhr
  • lpad(exp1,n[,exp2])

在字元串exp1左邊用字元串exp2填充,直到整個字元串長度為n為止;如果exp2參數沒有,則以空格填充

SQL> select lpad('xiezhr',10,'0'),lpad('xiezhr',10) from dual;
 
LPAD('XIEZHR',10,'0') LPAD('XIEZHR',10)
--------------------- -----------------
0000xiezhr                xiezhr

4.9 刪除字元串首尾指定字元函數

trim([leading|trailing|both][trim_target from trim_source])函數

  • leading:刪除trim_source的首碼字元
  • trailing:刪除trim_source的尾碼字元
  • both: 刪除trim_source的首碼和尾碼字元
  • trim_target:刪除的指定字元串,預設是空格
  • trim_source:被操作字元串
SQL> select trim(trailing '公' from '公眾號XiezhrSpace公') as a ,trim(leading '我' from '我公眾號XiezhrSpace')as b ,trim('  公眾號XiezhrSpace  ')as c from dual;
 
A                 B                 C
----------------- ----------------- -----------------
公眾號XiezhrSpace 公眾號XiezhrSpace 公眾號XiezhrSpace

rtrim(char[,str])函數

與rpad函數相反,將char右邊出現在str中的字元刪掉,str參數不叫則預設刪除空格

SQL> select rtrim('公眾號XiezhrSpace我的','我的') a,'公眾號XiezhrSpace  ' b from dual;
 
A                 B
----------------- -------------------
公眾號XiezhrSpace 公眾號XiezhrSpace

ltrim(char[,str])函數

將char右邊出現在str中的字元刪掉,str參數不叫則預設刪除空格

SQL> select ltrim('我的公眾號XiezhrSpace','我的') a ,'   公眾號XiezhrSpace' b from dual;
 
A                 B
----------------- --------------------
公眾號XiezhrSpace    公眾號XiezhrSpace

5 日期型函數

5.1 系統時區、日期、時間函數

dbtimezone函數

函數沒有參數,返回資料庫時區

SQL> select dbtimezone from dual;
 
DBTIMEZONE
----------
+00:00

sysdate函數

函數沒有參數,可以得到系統當前日期

SQL> select sysdate from dual;
 
SYSDATE
-----------
2021-02-27

systimestamp函數

函數沒有參數,返回系統時間。時間包含時區信息,精確到微秒。函數可以用於返回遠端資料庫伺服器時間

SQL> select systimestamp from dual;
 
SYSTIMESTAMP
--------------------------------------------------------------------------------
27-2月 -21 03.06.44.403049 下午 +08:00

5.2 為日期加上指定月份函數

add_months(date,i)函數

  • date:指定日期
  • i: 要加的月份。i為正,在date日期上加i月;i為負,在date日期上減i月
SQL> select add_months(to_date('2021-01-01','yyyy-mm-dd'),10) a ,add_months(to_date('2021-01-01','yyyy-mm-dd'),-10) b from dual;
 
A           B
----------- -----------
2021-11-01  2020-03-01

5.3 返回指定月份最後一天

last_day(date)函數

返回date日期的最後一天

SQL> select last_day(to_date('2020-01-01','yyyy-mm-dd')) a from dual;
 
A
-----------
2020-01-31

5.4 返回指定日期後一周的函數

next_day(date,char)函數

SQL> select sysdate, next_day(sysdate,'星期二') a from dual;
 
SYSDATE     A
----------- -----------
2021-02-27  2021-03-02

5.5 提取指定日期特定部分函數

extract(datetime)函數

從給定的datetime中得到年、月、日、時、分、秒

SQL> select sysdate "date",
  2         extract(year from sysdate)"year",
  3         extract(month from sysdate)"month",
  4         extract(day from sysdate)"day",
  5         extract(hour from systimestamp)"hour",
  6         extract(minute from systimestamp)"minute",
  7         extract(second from systimestamp)"second"
  8  from dual;
 
date              year      month        day       hour     minute     second
----------- ---------- ---------- ---------- ---------- ---------- ----------
2021-02-27        2021          2         27          7         25    3.72008

5.6 獲取兩個日期之間月份

month_between(date1,date2)

獲取data1,date2日期之間的月份

SQL> select months_between(to_date('2021-03-02','yyyy-mm-dd'),to_date('2020-01-02','yyyy-mm-dd')) a from dual;
 
         A
----------
        14

5.7 日期四捨五入、截取函數

ronud(date[,fmt])

將date舍入到fmt指定形式,如果fmt參數不加,date被處理到最近一天

SQL> select round(to_date('2020-01-03 21:00:00', 'yyyy-mm-dd hh24:mi:ss'),'month') a,
  2         round(to_date('2020-01-03 21:00:00', 'yyyy-mm-dd hh24:mi:ss'),'day') b,
  3         round(to_date('2020-01-03 21:00:00', 'yyyy-mm-dd hh24:mi:ss')) c
  4    from dual;
 
A           B           C
----------- ----------- -----------
2020-01-01  2020-01-05  2020-01-04

trunc(date[,fmt])

將date截取到fmt指定形式,如果fmt參數不加,date被處理到最近一天

SQL> select trunc(to_date('2020-01-03 21:00:00', 'yyyy-mm-dd hh24:mi:ss'),'month') a,
  2         trunc(to_date('2020-01-03 21:00:00', 'yyyy-mm-dd hh24:mi:ss'),'day') b,
  3         trunc(to_date('2020-01-03 21:00:00', 'yyyy-mm-dd hh24:mi:ss')) c
  4    from dual;
 
A           B           C
----------- ----------- -----------
2020-01-01  2019-12-29  2020-01-03

6 轉換函數

6.1 數據類型轉換函數

一般用於數字與字元、字元與日期之間轉換

SQL>   select cast(sysdate as varchar2(12)) a,cast('123' as number) b, cast(123 as varchar2(3)) c from dual;
 
A                     B C
------------ ---------- ---
27-2月 -21          123 123

6.2 將字元串轉換字元集

convert(char,a[,b])函數

  • char:待轉換的字元串
  • a:轉變後的字元集
  • b: char原來字元集
SQL> select convert('測試','US7ASCII','ZHS16GBK') a from dual;
 
A
------------------------------
??

6.3 數值轉換成字元串

to_char(number[,fmt])函數

將數值、日期按照指定格式轉換成字元串

SQL> select to_char(3.45)a,to_char(3.45,'99.9')b,to_char(sysdate,'yyyy-mm-dd')c from dual;
 
A    B     C
---- ----- ----------
3.45   3.5 2021-02-27

6.4 字元轉日期

to_date(char,fmt)函數

將字元按照fmt格式轉換

SQL> select to_date('2020-12-01','yyyy-mm-dd') a from dual;
 
A
-----------
2020-12-01

6.5 符串轉數字函數

to_number(char[,fmt])函數

將字元串char 轉換為數值

SQL> select to_number('34.562','9999.999') from dual;
 
TO_NUMBER('34.562','9999.999')
------------------------------
                        34.562

7 null 函數

null值我們經常會遇到的,這時候我們就要學會怎麼處理null值

7.1 返回表達式為null的函數

coalesce(expr)函數

返回列表中第一個不為null的表達式,如果都為null,則返回null

SQL> select coalesce(null,'9',null,'b')a,coalesce(null,null,null,null)b from dual;
 
A B
- -
9 

7.2 排除指定條件函數

lnnvl(condition)函數

返回滿足condition條件以外的數據,包含null的條件,一般放到where語句中

SQL> select * from productinfo;
 
        ID PRODUCTCODE PRODUCTNAME                           QTY
---------- ----------- ------------------------------ ----------
         1 1001        蘋果                                  100
         1 1002        慄子                                    3
         1 1004        香蕉                                   34
         1 1004        西瓜                                   34
 
SQL> select * from productinfo where lnnvl(qty<100);
 
        ID PRODUCTCODE PRODUCTNAME                           QTY
---------- ----------- ------------------------------ ----------
         1 1001        蘋果                                  100

7.3 替換null值函數

nvl(expr1,expr2)函數

  • 當expr1為null時,返回expr2的值
  • 當expr1不為null時,返回expr1的值
SQL> select * from productinfo;
 
        ID PRODUCTCODE PRODUCTNAME                           QTY
---------- ----------- ------------------------------ ----------
         1 1001        蘋果                           
         1 1002        慄子                                    3
         1 1004        香蕉                                   34
         1 1004        西瓜                                   34
 
SQL> select id,productcode,productname, nvl(qty,0) qty from productinfo;
 
        ID PRODUCTCODE PRODUCTNAME                           QTY
---------- ----------- ------------------------------ ----------
         1 1001        蘋果                                    0
         1 1002        慄子                                    3
         1 1004        香蕉                                   34
         1 1004        西瓜                                   34

nvl2(expr1,expr2,expr3)

  • 當expr1為null時,返回expr3
  • 當expr1不為null時,返回expr2
SQL> select * from productinfo;
 
        ID PRODUCTCODE PRODUCTNAME                           QTY
---------- ----------- ------------------------------ ----------
         1 1001        蘋果                           
         1 1002        慄子                                    3
         1 1004        香蕉                                   34
         1 1004        西瓜                                   34
 
SQL> select id,productcode,productname, nvl2(qty,55,0) qty from productinfo;
 
        ID PRODUCTCODE PRODUCTNAME                           QTY
---------- ----------- ------------------------------ ----------
         1 1001        蘋果                                    0
         1 1002        慄子                                   55
         1 1004        香蕉                                   55
         1 1004        西瓜                                   55

8 聚合函數

8.1 求平均值函數

avg(expr)函數

該函數可以求指定列的平均值

SQL> select * from productinfo;
 
        ID PRODUCTCODE PRODUCTNAME                           QTY
---------- ----------- ------------------------------ ----------
         1 1001        蘋果                           
         1 1002        慄子                                    3
         1 1004        香蕉                                   34
         1 1004        西瓜                                   34
SQL> select avg(qty) from productinfo;
 
  AVG(QTY)
----------
23.6666666

8.2 求記錄數函數

count(expr)

SQL> select * from productinfo;
 
        ID PRODUCTCODE PRODUCTNAME                           QTY
---------- ----------- ------------------------------ ----------
         1 1001        蘋果                           
         1 1002        慄子                                    3
         1 1004        香蕉                                   34
         1 1004        西瓜                                   34
 
SQL> select count(1) from productinfo;
 
  COUNT(1)
----------
         4

8.3 求最大值函數

max(expr)

 
SQL> select * from productinfo;
 
        ID PRODUCTCODE PRODUCTNAME                           QTY
---------- ----------- ------------------------------ ----------
         1 1001        蘋果                           
         1 1002        慄子                                    3
         1 1004        香蕉                                   34
         1 1004        西瓜                                   34
 
SQL> select max(qty) from productinfo;
 
  MAX(QTY)
----------
        34

8.4 求最小值

min(expr)

SQL> select * from productinfo;
 
        ID PRODUCTCODE PRODUCTNAME                           QTY
---------- ----------- ------------------------------ ----------
         1 1001        蘋果                           
         1 1002        慄子                                    3
         1 1004        香蕉                                   34
         1 1004        西瓜                                   34
 
SQL> select min(qty) from productinfo;
 
  MIN(QTY)
----------
         3

8.5 求和函數

sum(expr)

SQL> select * from productinfo;
 
        ID PRODUCTCODE PRODUCTNAME                           QTY
---------- ----------- ------------------------------ ----------
         1 1001        蘋果                           
         1 1002        慄子                                    3
         1 1004        香蕉                                   34
         1 1004        西瓜                                   34
 
SQL> select sum(qty) from productinfo;
 
  SUM(QTY)
----------
        71

9 其他函數

decode(expr,search,result,defalut)函數

當expr滿足search時候返回result,改過程可以重覆多個,如果都沒有匹配的結果則返回default

SQL> select t.*, decode(qty,null,'不足',3,'不足','充足')a from productinfo t;
 
        ID PRODUCTCODE PRODUCTNAME                           QTY A
---------- ----------- ------------------------------ ---------- ----
         1 1001        蘋果                                      不足
         1 1002        慄子                                    3 不足
         1 1004        香蕉                                   34 充足
         1 1004        西瓜                                   34 充足

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • AspNetCoreRateLimit應用於MVC項目求助 前言 之前發過一篇文章: .NET Core WebApi介面ip限流實踐 - 妙妙屋(zy) - 博客園 (cnblogs.com) 然後應用在前後端分離項目這個組件是非常好用的。但應用於不分離的項目,比如我的個人博客就有點麻煩。 就是我 ...
  • 隨著技術的發展,ASP.NET Core MVC也推出了好長時間,經過不斷的版本更新迭代,已經越來越完善,本系列文章主要講解ASP.NET Core MVC開發B/S系統過程中所涉及到的相關內容,適用於初學者,在校畢業生,或其他想從事ASP.NET Core MVC 系統開發的人員。 經過前幾篇文章... ...
  • 重要聲明-針對攻擊者 網站pljzy.top被某人攻擊 ZY知識庫 首先 說我網站抄襲,文章抄襲,ok,你列舉一下我有那幾篇文章是抄的別人的?自己眼睛不看的是吧,但凡我參考的別人的文章我都會放原文地址。 先放幾張圖片,真搞不懂我抄誰了,下麵全是我自己電腦的md文件,我抄誰的了?全是我自己做的筆記。 ...
  • 你是否見過`bash ... 2>&1 1>file.txt`的寫法? 還沒發現這樣的寫法有什麼問題? 那麼恭喜你, 看完本文你又將學會一個新知識! ...
  • 1. 前言 還記得大學第一次接觸Ubuntu和Linux的時候,覺得用apt安裝想要的軟體非常方便。但是有時候出現了問題,各種報錯,自己又不懂原理,就會非常抓狂。現在稍微理解一點了,故以較為容易理解的方式記錄在這裡,方便他人。 2. 軟體包與包管理器dpkg Linux里的軟體就是一些可執行文件。就 ...
  • 背景 工作中遇到客戶反饋,上層應用UDP固定間隔100ms發包,但本地tcpdump抓包存在波動,有的數據包之間間隔107ms甚至更多,以此重新梳理了下udp的發送流程。 udp發包流程 udp_sendmsg UDP corking 是一項優化技術,允許內核將多次數據累積成單個數據報發送。在用戶程 ...
  • 如果你在 Docker 環境中使用 WebSocket 並通過 Nginx 進行代理,可能需要進行一些額外的配置才能使 WebSocket 正常工作。 下麵是一些可能會導致 WebSocket 代理失敗的問題以及相應的解決方法: 檢查 Nginx 配置 在 Nginx 配置中,確保已經正確地設置了 ...
  • TTL是 Time To Live的縮寫,該欄位指定IP包被路由器丟棄之前允許通過的最大網段數量。TTL是IPv4報頭的一個8 bit欄位。 IPv4包頭中TTL是一個8 bit欄位,它位於IPv4包的第9個位元組。如下圖所示,每一行表示 32 bit(4位元組),位從0開始編號,即0~31。 TTL的 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...