sqlloader學習筆記

  1. INFILE的用法
1)模糊導入多個數據的文件。 可以在文件名中使用通配符。 星號 * 表示復數字符,問號 (?) 表示單個字符。

INFILE 'emp*.dat'

INFILE 'm?emp.dat'

?2)如果不需要導入數據文件,控制文件中有數據,可用INFILE? *?

INFILE? *? 表示控制文件導入的數據在控制文件中,begindata以后。

eg:

LOAD DATA

INFILE *

INTO TABLE DEPT

FIELDS TERMINATED BY ‘,’

(DEPTNO, DNAME, LOC)

?BEGINDATA

10,Sales,Yinginia

20,Acceounting,yirgina

3)在完整路徑 中指定的文件?datafile?.dat

INFILE 'c:/topdir/subdir/datafile.dat'

4)指定多個數據文件

INFILE? mydat1.dat? BADFILE? ‘mydat1.bad’? DISCARDFILE ‘mydat1.dis’

INFILE? mydat2.dat

INFILE? mydat3.dat? BADFILE? ‘mydat3.bad’? DISCARDFILE ‘mydat3.dis’

INFILE? mydat4.dat? DISCARDMAX? 10 0

附加:

INFILE "e:\gnis\mi_deci.dat" --Windows

INFILE '/home/oracle/gnis/mi_deci.dat' --Unix

2、insert、append、replace、truncate

insert:在空表中插入數據,表中有數據會中止

append:在表數據后面追加數據

replace:替代表中數據,加載前會先刪除原表中的數據

truncate:

2-1 columns列語句

column_name POSITION (start:end) datatype

或者

column_name datatype TERMINATED BY ‘delim’ [OPTIONALLY ENCLOSED BY ‘delim’]

column_name [POSITION({start|*[+offset]}[{:|-}end])]

?[datatype] [PIECED]

?[NULLIF condition [AND condition...]]

?[DEFAULTIF condition [AND condition...]]

?["sql_expression"]

into table命令
INTO TABLE table_name  [{PARTITION | SUBPARTITION} (partition_name)]  {INSERT | REPLACE | TRUNCATE | APPEND}  [SORTED [INDEXES] (index_list)] [SINGLEROW]  [{INSERT | REPLACE | TRUNCATE | APPEND}]  [OPTIONS (FILE=database_filename)]  [REENABLE [DISABLED_CONSTRAINTS][EXCEPTIONS exception_table_name]]  [WHEN field_conditions]  [{OID(fieldname)|SID(fieldname)}]  [FIELDS [delimiter_description]]  [TRAILING [NULLCOLS]  [SKIP skip_count]  (field_list)

3.加載多個表,字段用逗號分隔開

LOAD DATA
INFILE ‘animal_feeding.csv’ 
APPEND 
INTO TABLE animal_feeding 
(
animal_id INTEGER EXTERNAL TERMINATED BY ‘,’, 
feeding_date DATE “dd-mon-yyyy” TERMINATED BY ‘,’, 
pounds_eaten DECIMAL EXTERNAL TERMINATED BY ‘,’ 
) 
INTO TABLE animal_feeding_note 
( 
animal_id INTEGER EXTERNAL TERMINATED BY ‘,’, 
feeding_date DATE “dd-mon-yyyy” TERMINATED BY ‘,’, 
pounds_eaten FILLER DECIMAL EXTERNAL TERMINATED BY‘,’, 使用了FILLER關鍵字指定SQLLoader不加載此字段。
note CHAR TERMINATED BY ‘,’ 
OPTIONALLY ENCLOSED BY ‘“‘????? 界定符為雙引號,也就是“a”=> a;
)

3-1提供了多個數據文件,要導入同一張表

LOAD DATA
INFILE ldr_case8_1.dat
INFILE ldr_case8_2.dat
INFILE ldr_case8_3.dat
TRUNCATE INTO TABLE MANAGER
FIELDS TERMINATED BY ","
(MGRNO,MNAME,JOB)

3-2同一個數據文件,要導入不同表

待導入的數據文件如下:

BON SMITH CLEAK 3904

BON ALLEN SALER,M 2891

MGR 10 SMITH SALES MANAGER

MGR 11 ALLEN.W TECH MANAGER

TMP SMITH 7369 CLERK 800 20

TMP ALLEN 7499 SALESMAN 1600 30

需求是將以 MGR 開頭的記錄導入 MANAGER 表,以 BON 開頭的記錄導入 BONUS表,其他記錄存入廢棄文件中

創建控制文件如下:

LOAD DATA
INFILE ldr_case9.dat
DISCARDFILE ldr_case9.dsc
TRUNCATEINTO TABLE BONUSWHEN TAB= 'BON'(TAB FILLER POSITION(1:3),ENAME POSITION(5:9) ,JOB POSITION(*+1:18),SAL POSITION(*+1))INTO TABLE MANAGERWHEN TAB = 'MGR'(TAB FILLER POSITION(1:3),MGRNO POSITION(4:5) ,MNAME POSITION(7:13),JOB POSITION(*+1))

附加:

DATE的其他格式

4、描述定寬列POSITION (start:end) ????記錄的第一個字符總是位置1 ?

(

animal_id POSITION (1:3) INTEGER EXTERNAL,

feeding_date POSITION (4:14) DATE “dd-mon-yyyy”,

pounds_eaten POSITION (15:19) ZONED (5,2),

note POSITION (20:99) CHAR

)

5、sqlloader文本的基本數據類型

CHAR?????????????? 標識字符數據。?不要將其與數據庫中使用的CHAR數據類型混淆。?兩者之間不存在任何關系。?如果要將數據加載到任何類型的文本字段中,如VARCHAR2CHARCLOB,請使用SQL*Loader CHAR數據類型。?

DATE [“format”] ??????標識日期。?即使它是可選的,也要指定一種格式。?這樣,如果數據庫中的默認日期格式與您期望的不同,就可以避免出現問題。?

INTEGER EXTERNAL ???標識以字符形式存儲的整數值。?例如,字符串“123”是一個合法的INTEGER EXTERNAL值。?

DECIMAL EXTERNAL ??標識以字符形式存儲的數字值,該值可能包含小數點。?字符串" - 123.45 "DECIMAL EXTERNAL值的一個很好的例子。?ZONED(精度,比例)?

6NULLIF

如果您希望將空白字段視為null,則可以使用NULLIF子句來判斷SQL*Loader來做這個。?NULLIF子句出現在數據類型之后,并接受下面的形式: ?

NULLIF field_name=BLANKS

要定義animal_id,以便將空白值存儲為null,可以使用這個定義: ?

animal_id POSITION (1:3) INTEGER EXTERNAL NULLIF animal_id=BLANKS,

7trailing nullcols? ?如要導入源文件此列內容為空,在導入到數據庫表中,此列內容就是null

...INTO TABLE animal_feeding
TRAILING NULLCOLS
(animal_id INTEGER EXTERNAL TERMINATED BY ‘,’,feeding_date DATE “dd-mon-yyyy” TERMINATED BY ‘,’,pounds_eaten DECIMAL EXTERNAL TERMINATED BY ‘,’,note CHAR TERMINATED BY ‘,’OPTIONALLY ENCLOSED BY ‘”’
)

8、數據類型

1.字符類型數據
CHAR[ (length)] [delimiter]
length
缺省為 1.

2.日期類型數據
DATE [ ( length)]['date_format' [delimiter]
使用to_date函數來限制。

3.字符格式中的十進制
DECIMAL EXTERNAL [(length)] [delimiter]
用于常規格式的十進制數(不是二進制=> 一個位等于一個bit)。

4.壓縮十進制格式數據
DECIMAL digtial [,divcision]

5.雙精度符點二進制
DOUBLE

6.普通符點二進制
FLOAT

7.字符格式符點數
FLOAT EXTERNAL [ (length) ] [delimiter]

8.雙字節字符串數據
GRAPHIC [ (legth)]

9.雙字節字符串數據
GRAPHIC EXTERNAL[ (legth)]

10.常規全字二進制整數
INTEGER

11.字符格式整數
INTEGER EXTERNAL

12.常規全字二進制數據
SMALLINT

13.可變長度字符串
VARCHAR

14.可變雙字節字符串數據
VARGRAPHIC

15.RAW

16.VARRAWC

9、錯誤數據

INFILE ‘animal_feeding.csv’

BADFILE ‘animal_feeding_bad.bad’

10、CONCATENATE n ??n行數據合并看成一行數據

LOAD DATA

INFILE ‘animal_feeding_concat.csv’

BADFILE ‘animal_feeding_concat’

APPEND

CONCATENATE 2

.. .

11、continueif?的數據行合并常用語句

通過在指定的位置指定一個或多個字符,允許組合物理記錄到邏輯記錄。

continueif next (1:2) = '--'

a1,b1,c1,
--a2,b2,c2,
a3,b3,c3,
--a4,b4,c4,
a5,b5,c5,

===》

a1,b1,c1, a2,b2,c2,

a3,b3,c3,a4,b4,c4,
a5,b5,c5,

continueif next preserve (1:2) = '--'

a1,b1,c1,
--a2,b2,c2,
a3,b3,c3,
--a4,b4,c4,
a5,b5,c5,

===》

a1,b1,c1, --a2,b2,c2,

a3,b3,c3,--a4,b4,c4,
a5,b5,c5,

continueif this preserve (1:2) = '--'

a1,b1,c1,
--a2,b2,c2,
a3,b3,c3,
--a4,b4,c4,
a5,b5,c5,

===》

a1,b1,c1,

--a2,b2,c2,a3,b3,c3,

--a4,b4,c4,a5,b5,c5,

continueif last? (= '-')

a1,b1,c1,-
a2,b2,c2,
a3,b3,c3,-
a4,b4,c4,
a5,b5,c5,

===》

a1,b1,c1, -a2,b2,c2,

a3,b3,c3,-a4,b4,c4,

a5,b5,c5,

12、sqlldr的命令語句

sqlldr [param=value[, param=value...]]

在系統提示符下啟動 SQL*加載程序并運行示例。

例如,要運行案例 1,請輸入以下命令:

sqlldr USERID=scott CONTROL=ulcase1.ctl LOG=ulcase1.log

CONTROL?將參數和參數替換為相應的控件和?LOG?日志文件名,然后按 Enter 鍵。 當系統提示輸入密碼時,?tiger?鍵入并按 Enter 鍵。

==〉> sqlldr CONTROL=ulcase1.ctl LOG=ulcase1.log

Username: scott

Password: password

userid??? 傳入您的用戶名、密碼和Net8服務名稱。?使用的語法與任何其他命令行實用程序相同,看起來像這樣:userid=username[/password][@service]?

control??? 傳入控制文件名。?下面是一個例子:: control=[path]filename[.ext] 控制文件的默認擴展名是.ctl?

log ??????傳入日志文件名。?例如: log=[path]filename[.ext]?日志文件的默認擴展名為。log?如果不提供文件名,日志文件將被命名為與控制文件匹配?

bad ?????傳入錯誤的文件名。?例如: bad=[path]filename[.ext]壞文件的默認擴展名是。bad?如果您沒有提供文件名,那么壞文件將被命名為與控制文件匹配。?使用此參數將覆蓋可能在控制文件中指定的任何文件名。?

Data???? 傳入數據文件名。?例如: data=[path]filename[.ext]數據文件的默認擴展名是。dat?在命令行上指定數據文件名將覆蓋控制文件中指定的名稱。?如果沒有在任何地方指定數據文件名,則默認使用與控制文件相同的名稱,但擴展名為.dat?

discard ????傳入丟棄的文件名。?例如: discard=[path]filename[.ext]?用于丟棄文件的默認擴展名是。dis?如果不提供文件名,則丟棄文件將被命名為與控制文件匹配。?使用此參數將覆蓋控制文件中可能指定的任何丟棄文件名。?

discardmax ??可選地對允許丟棄的記錄數量進行限制。?語法是這樣的:discardmax=number_of_records如果丟棄的記錄數量超過這個限制,加載將被中止。?

Skip??? 允許您跳過指定數量的邏輯記錄。?語法如下:skip=number_of_records當您想要繼續加載已經中止的文件,并且知道在重新啟動之前要進入文件的多少位置時,可以使用skip參數。?

load ???可選地限制要加載到數據庫中的邏輯記錄的數量。?語法是這樣的:load=number_of_records一旦達到指定的限制,SQL*Loader將停止。?

Errors? 指定SQL*Loader終止加載之前允許的錯誤數量。?語法看起來是這樣的:errors=number_of_records SQL*Loader將在收到超過指定數量的錯誤時停止加載。?默認限制為50?沒有辦法允許無限數量。?最好是指定一個非常高的值,比如999999999?

Rows?? 間接控制加載過程中提交的頻率。rows參數以行為單位指定用于常規路徑加載的綁定數組的大小。SQL*Loader會將該值舍入為I/O塊大小的若干倍。rows參數的語法如下所示:rows=number_of_rows對于常規路徑加載,默認值是64。默認情況下,只有在完成整個負載時才保存直接路徑負載。但是,當完成直接路徑負載時,可以使用此參數直接控制提交頻率

………

USERID={username[/password][@net_service_name]|/}

CONTROL=control_file_name

LOG=path_file_name

BAD=path_file_name

DATA=path_file_name

DISCARD=path_file_name

DISCARDMAX=logical_record_count

SKIP=logical_record_count

SKIP_INDEX_MAINTENANCE={TRUE | FALSE}

SKIP_UNUSABLE_INDEXES={TRUE | FALSE}

LOAD=logical_record_count

ERRORS=insert_error_count

ROWS=rows_in_bind_array

BINDSIZE=bytes_in_bind_array

SILENT=[(]keyword[,keyword...][)]

DIRECT={TRUE | FALSE}

PARFILE=path_file_name

PARALLEL={TRUE | FALSE}

READSIZE=bytes_in_read_buffer

FILE=database_datafile_name

13編寫表達式來修改加載的數據

LOAD DATA

INFILE ‘animal_feeding_expr.csv’

BADFILE ‘animal_feeding_expr’

APPEND

INTO TABLE animal_feeding

TRAILING NULLCOLS

(

animal_id INTEGER EXTERNAL TERMINATED BY “,”,

feeding_date DATE “dd-mon-yyyy” TERMINATED BY “,”,

pounds_eaten DECIMAL EXTERNAL TERMINATED BY “,”

??? “:pounds_eaten * 2.2”,??? 取到的值*2.2

note CHAR TERMINATED BY “,”

???? OPTIONALLY ENCLOSED BY ‘“‘

??? “UPPER(:note)”? ?字符轉成大寫

)

截取

SAL position(17:20),

COMM "substr(:SAL,1,1)"

替換

REMARK "replace(:remark, '\\n',chr(10))"

空白看成NULL

animal_id POSITION (1:3) INTEGER EXTERNAL

? ? ??????NULLIF animal_id=BLANKS,

自動生成字段值

column_name {

RECNUM??? 遞增數值從1開始

?|SYSDATE?? 系統時間

?|CONSTANT {string | "string"}?? 常量值

?|SEQUENCE [({COUNT | MAX|integer}[,increment])]? 效果與RECNUM差不多,可以設置開始值

?}

eg:

REMARK??? CONSTANT "United States Geological Survey",

TIMES? ???SYSDATE

去掉空格

county POSITION(64) CHAR(5) "RTRIM(:county)"

NVL

elevation POSITION(49) INTEGER EXTERNAL(4)

"NVL(:elevation,0)",

轉數字計算

price POSITION(37:40) "TO_NUMBER(:bookPrice)/100"? -- TO_NUMBER(NVL(:price,0))/100

取最大值

price POSITION(37) "GREATEST(TO_NUMBER(:price)/100, TO_NUMBER(:pages*0.10))",

14、反斜杠轉義字符

SQL*加載程序和外部表使用各種約定將單引號標識為封閉字符。

SQL*Loader 允許使用反斜杠 ?\? 轉義字符,以確保將單引號標識為括起來的字符。

例如

FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\''

<==>

FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY "'"

DDL 語法中,反斜杠轉義字符 \)。

"so'\"far"???? or? 'so\'"far'???? ==? so'"far

"'so\\far'"??? or? '\'so\\far\'' ==? 'so\far'

"so\\\\far"??? or? 'so\\\\far'??? ==?? so\\far

15 控制文件內容

1??? -- This is an example control file

2??? LOAD DATA

3??? INFILE 'sample.dat'

4??? BADFILE 'sample.bad'

5??? DISCARDFILE 'sample.dsc'

6??? APPEND

7??? INTO TABLE emp

8??? WHEN (57) = '.'

9??? TRAILING NULLCOLS

10? (hiredate SYSDATE,

????? deptno POSITION(1:2)? INTEGER EXTERNAL(2)

????????????? NULLIF deptno=BLANKS,

?????? job??? POSITION(7:14)? CHAR? TERMINATED BY WHITESPACE

???????????? ?NULLIF job=BLANKS? "UPPER(:job)",

?????? mgr??? POSITION(28:31) INTEGER EXTERNAL

????????????? TERMINATED BY WHITESPACE, NULLIF mgr=BLANKS,

?????? ename? POSITION(34:41) CHAR

????????????? TERMINATED BY WHITESPACE? "UPPER(:ename)",

?????? empno? POSITION(45) INTEGER EXTERNAL

????????????? TERMINATED BY WHITESPACE,

?????? sal??? POSITION(51) CHAR? TERMINATED BY WHITESPACE

????????????? "TO_NUMBER(:sal,'$99,999.99')",

?????? comm?? INTEGER EXTERNAL? ENCLOSED BY '(' AND '%'

????????????? ":comm * 100"

??? )

此示例控制文件中左側的數字未出現在實際控制文件中。 這些數字對應于以下說明中的數字:

  1. 控制文件中條目之前的此注釋是如何在控制文件中輸入注釋的示例。 “--”表注釋
  2. LOAD DATA?該語句在 SQL*Loader 中啟動新的數據加載。 有關語法詳細信息,請參閱 SQL*加載程序語法圖。
  3. INFILE?該子句指定包含要加載的數據的數據文件的名稱。 有關更多信息,請參閱指定數據文件。
  4. BADFILE?該子句指定拒絕記錄寫入的文件的名稱。 有關詳細信息,請參閱指定錯誤文件。
  5. DISCARDFILE?該子句指定邏輯刪除記錄寫入的文件的名稱。 有關詳細信息,請參閱指定放棄文件。
  6. APPEND?子句是可用于將數據加載到非空表中的選項之一。 有關更多信息,請參見將數據加載到非空表中。

若要將數據加載到空表中,請使用?INSERT?子句。 有關更多信息,請參見將數據加載到空表中。

  1. INTO TABLE?可以使用子句來標識表、字段和數據類型。 此子句定義數據文件中的記錄與數據庫中的表之間的關系。 有關更多信息,請參見指定表名。
  2. WHEN?子句指定一個或多個字段條件。 SQL*加載器根據此條件確定是否加載數據。 有關詳細信息,請參閱有條件加載記錄。
  3. TRAILING NULLCOLS?使用子句時,如果記錄中不存在由相對位置指定的列,則該列的值將被視為 NULL。 有關詳細信息,請參閱處理缺少數據的短記錄。
  4. 控制文件的其余部分包含一個字段列表,您可以在其中查看正在加載的表的列格式詳細信息。 有關控制文件節的詳細信息,請參閱 SQL*加載程序字段列表參考。

16在控制文件中指定命令行參數

SQL*Loader 控制文件中,可以使用子句指定?OPTIONS?命令行參數。

OPTIONS (parameter=value[,parameter=value...])

OPTIONS?從句放在LOAD DATA句子之前。?

eg

OPTIONS (SILENT=ALL, ERRORS=999999)
LOAD DATA
INFILE 'mi_deci.dat'
TRUNCATE
INTO TABLE GNIS(…)
有關OPTIONS?這些參數的說明,請參閱 SQL*加載程序命令行參考。BINDSIZE = n
COLUMNARRAYROWS = n
DATE_CACHE = n
DEGREE_OF_PARALLELISM= {degree-num|DEFAULT|AUTO|NONE}
DIRECT = {TRUE | FALSE} 
EMPTY_LOBS_ARE_NULL = {TRUE | FALSE}
ERRORS = n
EXTERNAL_TABLE = {NOT_USED | GENERATE_ONLY | EXECUTE}
FILE = tablespace file 
LOAD = n 
MULTITHREADING = {TRUE | FALSE}
PARALLEL = {TRUE | FALSE}
READSIZE = n
RESUMABLE = {TRUE | FALSE}
RESUMABLE_NAME = 'text string'
RESUMABLE_TIMEOUT = n
ROWS = n 
SDF_PREFIX = string
SILENT = {HEADER | FEEDBACK | ERRORS | DISCARDS | PARTITIONS | ALL} 
SKIP = n?? 
SKIP_INDEX_MAINTENANCE = {TRUE | FALSE}
SKIP_UNUSABLE_INDEXES = {TRUE | FALSE}
STREAMSIZE = n
TRIM= {LRTRIM|NOTRIM|LTRIM|RTRIM|LDRTRIM}

17WHEN條件

LOAD DATAINFILE 'michigan_feature_names.dat'BADFILE 'michigan.bad'APPEND INTO TABLE featuresWHEN (feature_type='falls') AND (county='Alger')(state????????? CHAR TERMINATED BY ',' ENCLOSED BY '"',feature_name CHAR TERMINATED BY ',' ENCLOSED BY '"',feature_type CHAR TERMINATED BY ',' ENCLOSED BY '"',county ???????CHAR TERMINATED BY ',' ENCLOSED BY '"')

18自定義方法調用

CREATE OR REPLACE FUNCTION price_check(price_in NUMBER, pages_in NUMBER)
RETURN NUMBER ISmin_price NUMBER;
BEGINSELECT ppt_min_price INTO min_priceFROM price_page_thresholdWHERE pages_in >= ppt_pagesAND ppt_pages = (SELECT MAX(ppt_pages)FROM price_page_thresholdWHERE pages_in >= ppt_pages);RETURN GREATEST(min_price,price_in);
END;LOAD DATAINFILE 'book_prices.dat'REPLACE INTO TABLE book(book_title POSITION(1) CHAR(35),book_price POSITION(37)"price_check(:book_price,:book_pages)",book_pages POSITION(42) INTEGER EXTERNAL(3),book_id "book_seq.nextval")

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/38371.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/38371.shtml
英文地址,請注明出處:http://en.pswp.cn/news/38371.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

jQuery EasyUI datagrid 無記錄時,增加“暫無數據“提示

我們只需要在onLoadSuccess中添加如下代碼&#xff1a; if (data.total 0) {var body $(this).data().datagrid.dc.body2;body.find(table tbody).append(<tr><td width" body.width() " style"height: 35px; text-align: center;"><h…

C語言學習之封裝自定義函數,實現atoi函數功能

實例要求&#xff1a;atoi函數的功能是把字符串轉成整型數值并輸出&#xff1b;把字符串"123456"轉換成數值123456 &#xff0c;并返回數值&#xff1b;函數名&#xff1a; int myatoi(char *str);實例分析&#xff1a; 1.自定義的封裝函數類型是整型&#xff0c;…

在阿里云Linux服務器上部署MySQL數據庫流程

阿里云百科分享在阿里云Linux服務器上部署MySQL數據庫流程&#xff0c;MySQL是一個關系型數據庫管理系統&#xff0c;常用于LAMP和LNMP等網站場景中。本教程介紹如何在Linux系統ECS實例上安裝、配置以及遠程訪問MySQL數據庫。 目錄 背景信息 Alibaba Cloud Linux 2/3、CentO…

上傳excel文件

文件上傳&#xff0c;其實就是用el-upload組件來實現上傳&#xff0c;只是換了樣式&#xff0c;和圖片上傳一樣 <el-form-item label"選擇文件"><el-input placeholder"請選擇文件" v-model"form.file" disabled style"width: 45…

java 使用log4j顯示到界面和文件 并格式化

1.下載log4j jar包https://dlcdn.apache.org/logging/log4j/2.20.0/apache-log4j-2.20.0-bin.zip 2. 我只要到核心包 &#xff0c;看需要 sources是源碼包&#xff0c;可以看到說明。在IDEA里先加入class jar后&#xff0c;再雙擊這個class jar包或或右鍵選Navigate ,Add ,…

android.system.ErrnoException: open failed: EPERM (Operation not permitted)

android 10(Q)開始增加了沙盒機制&#xff0c;不能直接把文件保存到/sdcard目錄下&#xff0c;只能保存到APP專屬目錄下&#xff1b;AndroidManifest.xml在標簽下增加屬性【android:requestLegacyExternalStorage“true”】可以暫時保存到/sdcard路徑下&#xff0c;但是Android…

Revit SDK 介紹:PanelSchedule 配電盤明細表

前言 這個例子介紹 Revit 的配電盤明細表&#xff0c;PanelSchedule。Revit 的電器專業在國內用的并不是十分廣泛&#xff0c;但從功能上來說還是比較完整的。 內容 這個例子里有三個命令&#xff1a; PanelScheduleExport - 導出配電盤明細表InstanceViewCreation - 創建配…

【0基礎學爬蟲】爬蟲基礎之網絡請求庫的使用

大數據時代&#xff0c;各行各業對數據采集的需求日益增多&#xff0c;網絡爬蟲的運用也更為廣泛&#xff0c;越來越多的人開始學習網絡爬蟲這項技術&#xff0c;K哥爬蟲此前已經推出不少爬蟲進階、逆向相關文章&#xff0c;為實現從易到難全方位覆蓋&#xff0c;特設【0基礎學…

【Visual Studio Code】--- Win11 C盤爆滿 修改 Code 插件數據和緩存的保存路徑

Win11 C盤爆滿 修改 Code 插件數據和緩存的保存路徑 一、概述二、修改 Code 插件數據和緩存的保存路徑 一、概述 一個好的文章能夠幫助開發者完成更便捷、更快速的開發。書山有路勤為徑&#xff0c;學海無涯苦作舟。我是秋知葉i、期望每一個閱讀了我的文章的開發者都能夠有所成…

領航優配:EFT交易是什么意思?

EFT買賣是一種電子資金搬運買賣方法&#xff0c;EFT代表電子資金搬運&#xff0c;將現金從一個銀行賬戶搬運到另一個銀行賬戶。盡管這種買賣方法已經存在了幾十年&#xff0c;但隨著技能的開展&#xff0c;越來越多的人開始使用它。 從技能視點&#xff0c;EFT買賣是經過計算機…

【C語言】memset()函數

一.memset()函數簡介 我們先來看一下cplusplus.com - The C Resources Network網站上memset()函數的基本信息&#xff1a; 1.函數功能 memset()函數的功能是:將一塊內存空間的每個字節都設置為指定的值。 這個函數通常用于初始化一個內存空間&#xff0c;或者清空一個內存空間…

elementui form組件出現英文提示

今天讓解決一個bug&#xff0c;是表單組件提示詞會出現英文。 問題情景如下&#xff1a; 有時會出現中文&#xff0c;有時會出現英文。 解決方法&#xff1a; 經查看&#xff0c;代碼采用的是elementui的form組件&#xff0c;在el-form-item中使用了required屬性&#xff0c;同…

html的語義化

說說對 html 語義化的理解 去掉或者丟失樣式的時候能夠讓頁面呈現出清晰的結構有利于 SEO&#xff1a;和搜索引擎建立良好溝通&#xff0c;有助于爬蟲抓取更多的有效信息&#xff1a;爬蟲依賴于標簽來確定上下文和各個關鍵字的權重&#xff1b;方便其他設備解析&#xff08;如屏…

Fiddler

基礎 Fiddler 相當于一個 “代理”,瀏覽器訪問瀏覽器頁面時&#xff0c;就會把HTTP請求先發給Fiddler&#xff0c;Fiddler 再把請求轉發給瀏覽器的服務器&#xff0c;當瀏覽器服務器返回數據時&#xff0c;Fiddler拿到返回數據&#xff0c;再把數據交給瀏覽器。 主界面 刪除…

Github上git lfs oid sha256文件無法下載的解決方案

問題&#xff1a;github上sha文件無法下載&文件超出限制 當我克隆Github上的一個庫時&#xff0c;其中有一個包的內容格式如下&#xff1a; version https://git-lfs.github.com/spec/v1 oid sha256:一堆數字和字母 size 一堆數字 這堆東西類似百度網盤的下載鏈接和密碼&a…

設計HTML5表單

HTML5基于Web Forms 2.0標準對HTML4表單進行全面升級&#xff0c;在保持簡便、易用的基礎上&#xff0c;新增了很多控件和屬性&#xff0c;從而減輕了開發人員的負擔。表單為訪問者提供了與網站進行互動的途徑&#xff0c;完整的表單一般由控件和腳本兩部分組成。 1、認識HTML…

LeetCode150道面試經典題-- 匯總區間(簡單)

1.題目 給定一個 無重復元素 的 有序 整數數組 nums 。 返回 恰好覆蓋數組中所有數字 的 最小有序 區間范圍列表 。也就是說&#xff0c;nums 的每個元素都恰好被某個區間范圍所覆蓋&#xff0c;并且不存在屬于某個范圍但不屬于 nums 的數字 x 。 列表中的每個區間范圍 [a,…

紅黑樹(RBTree)

紅黑樹 1. 紅黑樹的概念2. 紅黑樹的性質3. 紅黑樹節點的定義4. 紅黑樹的插入操作5. 紅黑樹與AVL樹的比較 1. 紅黑樹的概念 紅黑樹是一種自平衡二叉查找樹&#xff0c;是在計算機科學中用到的一種數據結構&#xff0c;典型用途是實現關聯數組。它在1972年由魯道夫貝爾發明&…

【前端二次開發框架關于關閉eslint】

前端二次開發框架關于關閉eslint 方法一方法二方法三方法四&#xff1a;以下是若想要關閉項目中的部分代碼時&#xff1a; 方法一 在vue.config.js里面進行配置&#xff1a; module.exports {lintOnSave:false,//是否開啟eslint保存檢測 ,它的有效值為 true || false || err…

會一點stm32,只后是做嵌入式Linux還是轉JAVA?

選擇嵌入式Linux還是轉向JAVA&#xff0c;取決于你的興趣、職業規劃和就業市場的需求。以下是一些考慮因素&#xff1a;興趣和擅長&#xff1a;首先&#xff0c;你應該考慮自己對嵌入式Linux和JAVA的興趣和擅長程度。如果你對嵌入式系統、硬件交互和底層編程更感興趣&#xff0…