當前位置:首頁 » 存儲配置 » Oracle存儲

Oracle存儲

發布時間: 2022-02-02 16:40:50

❶ oracle如何存儲byte類型數據

這個我其實也不大懂 不過以前在倉庫中存了這方面的一點小東東 希望對你游泳 嘿嘿 不知道是不是你想要的 先搞上來你看看吧

Oracle中的BLOB和CLOB

一、區別和定義

LONG: 可變長的字元串數據,最長2G,LONG具有VARCHAR2列的特性,可以存儲長文本一個表中最多一個LONG列

LONG RAW: 可變長二進制數據,最長2G

CLOB: 字元大對象Clob 用來存儲單位元組的字元數據

NCLOB: 用來存儲多位元組的字元數據

BLOB: 用於存儲二進制數據

BFILE: 存儲在文件中的二進制數據,這個文件中的數據只能被只讀訪。但該文件不包含在資料庫內。

bfile欄位實際的文件存儲在文件系統中,欄位中存儲的是文件定位指針.bfile對oracle來說是只讀的,也不參與事務性控制和數據恢復.

CLOB,NCLOB,BLOB都是內部的LOB(Large Object)類型,最長4G,沒有LONG只能有一列的限制

要保存圖片、文本文件、Word文件各自最好用哪種數據類型?

--BLOB最好,LONG RAW也不錯,但Long是oracle將要廢棄的類型,因此建議用BLOB。

二、操作

1、 get

CLOB

java 代碼

//獲得資料庫連接
Connection con = ConnectionFactory.getConnection();
con.setAutoCommit(false);
Statement st = con.createStatement();
//不需要「for update」
ResultSet rs = st.executeQuery("select CLOBATTR from TESTCLOB where ID=1");
if (rs.next())
{
java.sql.Clob clob = rs.getClob("CLOBATTR");
Reader inStream = clob.getCharacterStream();
char[] c = new char[(int) clob.length()];
inStream.read(c);
//data是讀出並需要返回的數據,類型是String
data = new String(c);
inStream.close();
}
inStream.close();
con.commit();
con.close();

BLOB

java 代碼

//獲得資料庫連接
Connection con = ConnectionFactory.getConnection();
con.setAutoCommit(false);
Statement st = con.createStatement();
//不需要「for update」
ResultSet rs = st.executeQuery("select BLOBATTR from TESTBLOB where ID=1");
if (rs.next())
{
java.sql.Blob blob = rs.getBlob("BLOBATTR");
InputStream inStream = blob.getBinaryStream();
//data是讀出並需要返回的數據,類型是byte[]
data = new byte[input.available()];
inStream.read(data);
inStream.close();
}
inStream.close();
con.commit();
con.close();

2、 put

CLOB

java 代碼

//獲得資料庫連接
Connection con = ConnectionFactory.getConnection();
con.setAutoCommit(false);
Statement st = con.createStatement();
//插入一個空對象empty_clob()
st.executeUpdate("insert into TESTCLOB (ID, NAME, CLOBATTR) values (1, "thename", empty_clob())");
//鎖定數據行進行更新,注意「for update」語句
ResultSet rs = st.executeQuery("select CLOBATTR from TESTCLOB where ID=1 for update");
if (rs.next())
{
//得到java.sql.Clob對象後強制轉換為oracle.sql.CLOB
oracle.sql.CLOB clob = (oracle.sql.CLOB) rs.getClob("CLOBATTR");
Writer outStream = clob.getCharacterOutputStream();
//data是傳入的字元串,定義:String data
char[] c = data.toCharArray();
outStream.write(c, 0, c.length);
}
outStream.flush();
outStream.close();
con.commit();
con.close();

BLOB

java 代碼

//獲得資料庫連接
Connection con = ConnectionFactory.getConnection();
con.setAutoCommit(false);
Statement st = con.createStatement();
//插入一個空對象empty_blob()
st.executeUpdate("insert into TESTBLOB (ID, NAME, BLOBATTR) values (1, "thename", empty_blob())");
//鎖定數據行進行更新,注意「for update」語句
ResultSet rs = st.executeQuery("select BLOBATTR from TESTBLOB where ID=1 for update");
if (rs.next())
{
//得到java.sql.Blob對象後強制轉換為oracle.sql.BLOB
oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob("BLOBATTR");
OutputStream outStream = blob.getBinaryOutputStream();
//data是傳入的byte數組,定義:byte[] data
outStream.write(data, 0, data.length);
}
outStream.flush();
outStream.close();
con.commit();
con.close();

=======================================================================

厚厚發表於 2006年06月27日

網路上很多關於JAVA對Oracle中BLOB、CLOB類型欄位的操作說明,有的不夠全面,有的不夠准確,甚至有的簡直就是胡說八道。最近的項目正巧用到了這方面的知識,在這里做個總結。
環境:
Database: Oracle 9i
App Server: BEA Weblogic 8.14
表結構:
CREATE TABLE TESTBLOB (ID Int, NAME Varchar2(20), BLOBATTR Blob)
CREATE TABLE TESTBLOB (ID Int, NAME Varchar2(20), CLOBATTR Clob)
JAVA可以通過JDBC,也可以通過JNDI訪問並操作資料庫,這兩種方式的具體操作存在著一些差異,由於通過App Server的資料庫連接池JNDI獲得的資料庫連接提供的java.sql.Blob和java.sql.Clob實現類與JDBC方式提供的不同,因此在入庫操作的時候需要分別對待;出庫操作沒有這種差異,因此不用單獨對待。

一、BLOB操作
1、入庫
(1)JDBC方式
//通過JDBC獲得資料庫連接
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:testdb", "test", "test");
con.setAutoCommit(false);
Statement st = con.createStatement();
//插入一個空對象empty_blob()
st.executeUpdate("insert into TESTBLOB (ID, NAME, BLOBATTR) values (1, "thename", empty_blob())");
//鎖定數據行進行更新,注意「for update」語句
ResultSet rs = st.executeQuery("select BLOBATTR from TESTBLOB where ID=1 for update");
if (rs.next())
{
//得到java.sql.Blob對象後強制轉換為oracle.sql.BLOB
oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob("BLOBATTR");
OutputStream outStream = blob.getBinaryOutputStream();
//data是傳入的byte數組,定義:byte[] data
outStream.write(data, 0, data.length);
}
outStream.flush();
outStream.close();
con.commit();
con.close();
(2)JNDI方式
//通過JNDI獲得資料庫連接
Context context = new InitialContext();
ds = (DataSource) context.lookup("ORA_JNDI");
Connection con = ds.getConnection();
con.setAutoCommit(false);
Statement st = con.createStatement();
//插入一個空對象empty_blob()
st.executeUpdate("insert into TESTBLOB (ID, NAME, BLOBATTR) values (1, "thename", empty_blob())");
//鎖定數據行進行更新,注意「for update」語句
ResultSet rs = st.executeQuery("select BLOBATTR from TESTBLOB where ID=1 for update");
if (rs.next())
{
//得到java.sql.Blob對象後強制轉換為weblogic.jdbc.vendor.oracle.OracleThinBlob(不同的App Server對應的可能會不同)
weblogic.jdbc.vendor.oracle.OracleThinBlob blob = (weblogic.jdbc.vendor.oracle.OracleThinBlob) rs.getBlob("BLOBATTR");
OutputStream outStream = blob.getBinaryOutputStream();
//data是傳入的byte數組,定義:byte[] data
outStream.write(data, 0, data.length);
}
outStream.flush();
outStream.close();
con.commit();
con.close();
2、出庫
//獲得資料庫連接
Connection con = ConnectionFactory.getConnection();
con.setAutoCommit(false);
Statement st = con.createStatement();
//不需要「for update」
ResultSet rs = st.executeQuery("select BLOBATTR from TESTBLOB where ID=1");
if (rs.next())
{
java.sql.Blob blob = rs.getBlob("BLOBATTR");
InputStream inStream = blob.getBinaryStream();
//data是讀出並需要返回的數據,類型是byte[]
data = new byte[input.available()];
inStream.read(data);
inStream.close();
}
inStream.close();
con.commit();
con.close();
二、CLOB操作
1、入庫
(1)JDBC方式
//通過JDBC獲得資料庫連接
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:testdb", "test", "test");
con.setAutoCommit(false);
Statement st = con.createStatement();
//插入一個空對象empty_clob()
st.executeUpdate("insert into TESTCLOB (ID, NAME, CLOBATTR) values (1, "thename", empty_clob())");
//鎖定數據行進行更新,注意「for update」語句
ResultSet rs = st.executeQuery("select CLOBATTR from TESTCLOB where ID=1 for update");
if (rs.next())
{
//得到java.sql.Clob對象後強制轉換為oracle.sql.CLOB
oracle.sql.CLOB clob = (oracle.sql.CLOB) rs.getClob("CLOBATTR");
Writer outStream = clob.getCharacterOutputStream();
//data是傳入的字元串,定義:String data
char[] c = data.toCharArray();
outStream.write(c, 0, c.length);
}
outStream.flush();
outStream.close();
con.commit();
con.close();
(2)JNDI方式
//通過JNDI獲得資料庫連接
Context context = new InitialContext();
ds = (DataSource) context.lookup("ORA_JNDI");
Connection con = ds.getConnection();
con.setAutoCommit(false);
Statement st = con.createStatement();
//插入一個空對象empty_clob()
st.executeUpdate("insert into TESTCLOB (ID, NAME, CLOBATTR) values (1, "thename", empty_clob())");
//鎖定數據行進行更新,注意「for update」語句
ResultSet rs = st.executeQuery("select CLOBATTR from TESTCLOB where ID=1 for update");
if (rs.next())
{
//得到java.sql.Clob對象後強制轉換為weblogic.jdbc.vendor.oracle.OracleThinClob(不同的App Server對應的可能會不同)
weblogic.jdbc.vendor.oracle.OracleThinClob clob = (weblogic.jdbc.vendor.oracle.OracleThinClob) rs.getClob("CLOBATTR");
Writer outStream = clob.getCharacterOutputStream();
//data是傳入的字元串,定義:String data
char[] c = data.toCharArray();
outStream.write(c, 0, c.length);
}
outStream.flush();
outStream.close();
con.commit();
con.close();
2、出庫
//獲得資料庫連接
Connection con = ConnectionFactory.getConnection();
con.setAutoCommit(false);
Statement st = con.createStatement();
//不需要「for update」
ResultSet rs = st.executeQuery("select CLOBATTR from TESTCLOB where ID=1");
if (rs.next())
{
java.sql.Clob clob = rs.getClob("CLOBATTR");
Reader inStream = clob.getCharacterStream();
char[] c = new char[(int) clob.length()];
inStream.read(c);
//data是讀出並需要返回的數據,類型是String
data = new String(c);
inStream.close();
}
inStream.close();
con.commit();
con.close();
需要注意的地方:
1、java.sql.Blob、oracle.sql.BLOB、weblogic.jdbc.vendor.oracle.OracleThinBlob幾種類型的區別
2、java.sql.Clob、oracle.sql.CLOB、weblogic.jdbc.vendor.oracle.OracleThinClob幾種類型的區別

❷ oracle存儲過程有什麼好處

1。預編譯,已優化,效率較高。避免了SQL語句在網路中傳輸然後再解釋的低效率。
2。如果公司有專門的DBA,寫存儲過程可以他來做,程序員只要按他提供的介面調用就好了。這樣分開來做,比較清楚。
3。修改方便。嵌入在程序中的SQL語句修改比較麻煩,而且經常不能肯定該改的是不是都改了。SQLSERVER上的存儲過程修改就比較方便,直接改掉該存儲過程,調用它的程序基本不用動,除非改動比較大(如改了傳入的參數,返回的數據等)。
4。會安全一點。不會有SQL語句注入問題。

當然,也有缺點。特別是業務邏輯比較復雜時,全用存儲過程來寫,估計也累的夠嗆。

■SQL存儲過程執行起來比SQL命令文本快得多。當一個SQL語句包含在存儲過程中時,伺服器不必每次執行它時都要分析和編譯它。

■調用存儲過程,可以認為是一個三層結構。這使你的程序易於維護。如果程序需要做某些改動,你只要改動存儲過程即可

■你可以在存儲過程中利用Transact-SQL的強大功能。一個SQL存儲過程可以包含多個SQL語句。你可以使用變數和條件。這意味著你可以用存儲過程建立非常復雜的查詢,以非常復雜的方式更新資料庫。

❸ oracle存儲過程

create table dept
(deptno number,
dname varchar2(20),
loc varchar2(20)
)
1.如果你是取出單個的,你可以定義一個或者多個變數,將取出的值賦給變數
例如:

create or replace procere dept_procere(a in varchar2)
is
v_no number;
v_a varchar2(20);
begin
select a.deptno,a.loc into v_no,v_a
from dept a
where a.dname=a;
dbms_output.put_line('學號為:'||v_no||);
end;
2.如果你取出的是一個結果集,你可以用游標(一個簡單的例子)
create or replace procere dept_procere(a in varchar2,v_a out dept%rowtype)
is
--聲明游標
cursor c_de(a in varchar2)
is select * from dept where dname=a;
begin
--打開游標,對其中找到的記錄進行遍歷
open c_de(a);
loop
fetch c_de into v_a;
exit when c_de%notfound;
end loop;
close c_de;
dbms_output.put_line('deptno:'||v_a.deptno);
dbms_output.put_line('dname:'||v_a.dname);
dbms_output.put_line('loc:'||v_a.loc);
end;

3.可注意:在創建存儲過程的時候加上or replace,如果遇到重名的存儲過程將替換掉!
4.定義變數後面記得加上分號
5.oracle中可以對它直接賦值,可不用set, v_a:='a';
(6.給變數賦值的時候注意它的數據類型 a要單引號)
7.如果你這存儲過程是將參數賦值給一個你定義的變數的話,那這樣你不覺得是多此一舉么?一般將參數賦值給你定義的變數的話,可以進行數據類型轉換!可在此存儲過程中,沒發現它的用處
8.你取出來的數據,要放在變數或是游標中,顯示出來,不然你寫出來的存儲過程有什麼用呢?所以 select ...into ...
9.我也是剛學oracle的,希望可以互相學習一下,呵呵!上面的如有錯誤希望可以告訴我一下啊

❹ oracle每行對多可以存儲多少位元組

數據類型轉換 3.1 異構數據源數據類型概述 對不同資料庫系統,每個DBMS都定義了一套自己的數據類型,但不論數據類型在各個系統中如何變化,其功能都滿足用戶的數據處理基本要求,如數值型,包括整型、實型、浮點型、雙精度型等;字元型,包括定長、變長等;日期型,包括年、月、日和小時、分、秒等;長字元型,包括文本類型,還有錢幣型等。隨著資料庫系統的不斷發展和版本的不斷升級,數據類型的種類也不斷增多,如超文本和二進制處理多媒體和大文本的數據類型。這些帶有共性的東西,給系統間的數據轉換帶來了可能和方便,但不同的資料庫的數據類型也是有差異的。其自身定義和擴充之間的區別,也給系統間的數據轉換帶來了許多困難。例如,DBMS返回的日期和時間數據格式在各個DBMS中有很大的不同。有些系統以8位元組整數格式返回日期和時間,另外一些以浮點數格式返回。並且有的DBMS含有LONG類型,其它DBMS無此類型。所以異種資料庫數據類型轉換的關鍵是找出其中的對應關系。 3.2 數據類型轉換方法一(設計類型映射表) 為了實現相互數據轉換,必須設計多個相應的雙向數據轉換程序並且解決不同的數據類型匹配問題。當增加一個資料庫系統時,相應要解決該資料庫系統與已存在的多個異構庫的數據類型匹配問題,並增加多個對應轉換程序。為了實現程序的擴展性,可以通過設計類型映射表來解決類型轉換問題。 將不同資料庫系統數據類型的對應關系和相應的數據轉換處理程序分離開,使數據轉換程序相對獨立,而把類型轉換關系在專門的表結構中存儲。通過對不同資料庫系統之間的數據類型進行詳細而深入的分析,找出了不同資料庫系統不同版本的各個不同類型之間預設的類型對應關系及可能存在的對應關系,將這些數據預先存入類型映射表中。 3.3 數據類型轉換方法二(利用ODBC SQL類型) 存儲在數據源中的數據都有一個數據類型,稱為數據源數據類型或SQL數據類型。SQL數據類型是按照SQL-92標准由每一個DBMS定義,可以是某個數據源特有的。驅動程序在ODBC SQL語法及驅動程序數據類型中也定義了一套數據類型稱為ODBC SQL數據類型(以SQL前綴開頭的數據類型)。每個驅動程序負責映射特定數據來源的SQL數據類型到ODBC SQL數據類型標識符。因此,不同的數據源在進行數據轉換的過程中可以通過ODBC SQL數據類型標識符作為基準來得到數據類型的預設映射關系。驅動程序通過函數SQLGetTypelnfo返回數據源的SQL數據類型和ODBC SQL數據類型的映射關系,在函數SQLCo1Attributes,SQLDescribeCol和 SQLDescribeParm中,驅動程序還用ODBC SQL數據類型來描述列和參數的數據類型。 此外,ODBC還提供一套以SQL_C前綴開頭的ODBC C數據類型。ODBC C數據類型指出了在應用程序中用於存儲數據的C緩沖區的數據類型。所有驅動程序必須支持所有的C數據類型,而且支持所有C類型到相應的SQL類型的轉換,並且所有的驅動程序至少支持字元SQL類型,使得DBMS的數據類型都能映射到一種C語言的數據類型,這樣在傳遞過程中不會改變數據。每一個SQL數據類型與一個ODBC C數據類型相適應。在從數據源返回數據之前,驅動程序將它轉換到指定的C數據類型。在發送數據到數據來源之前,驅動程序將它從指定C數據類型轉換到SQL數據類型。 4 數據轉換過程中大對象的處理 4.1 大對象類型概述 大對象類型BLOB全稱為Binary Large Objects,即二進制大對象。可以把BLOB區別為三種形式:聲像數據、二進制數據和大文本數據。因此,最常見的應用就是存儲圖形、聲音等對象,此外大二進制對象、OLE對象也可以通過BLOB類型存入資料庫,如果文本對象過大,超出了文本類型的規定長度,則必須用BLOB欄位進行存儲。我們在經常使用的編程環境中並不能直接支持BLOB欄位,因此需要調用相應的函數完成BLOB的使用。 不同的資料庫系統對大對象類型的支持不同,常用資料庫系統支持的大對象數據類型如表4所示: 表4資料庫系統支持的大對象數據類型 資料庫系統 大對象類型 SQL SERVER "sql_variant","ntext","image","varbinary","binary","text" ORACLE "BLOB","LONG RAW","BFILE","RAW","CLOB","LONG" SYBASE "LONG VARCHAR"VFP "MEMO"ACCESS "OLE OBJECT","MEMO" KINGBASE "blob","text","bytea","varbinary","binary","text" 4.2 大對象的存取方法 1)利用MFC提供的CLongBinary類 VC存取大對象數據有眾多方法,如OLE、ActiveX等,而VC的MFC提供的CLongBinary類可以方便地實現存取BLOB欄位。使用CLongBinary類可以存取超過MAXINT數目的數據,最大為可以得到的內存容量。但數據完全保存在內存中,對超大量數據消耗太大。 2)利用ODBC的SQLGetData和SQLPutData函數 對於不能存儲在單一緩沖區中的數據,在行中的其他數據已被獲取之後,可以直接用SQLGetData分批從驅動程序檢索這些數據。為了從一列檢索長數據,應用程序首先調用SQLFetchScroll或SQLFetch移動一行,並且調用SQLGetData獲取綁定列的數據。

❺ Oracle存儲過程

你這個不能算是oracle的過程。
建議下載一份oracle的sql 參考手冊官方文檔放在手邊,隨時備查。或者隨便找本oracle的教程看看都行。並不難。
我簡單寫個例子給你先:
oracle的過程:
create or replace 過程名 (參數1 in 類型,參數2 in 類型,......)
as
--變數定義,例如:
a number(12);
b varchar2(40);
--過程體開始:
begin

--變數賦值
a := 123;
--字元串拼接用「||」
b:='123';
b:= b||'abc'||'fasfdas';

--執行動態SQL
execute immediate 『delete a_table where c=5';
end;
--過程體結束

❻ oracle中的存儲過程,有什麼作用

定義:存儲過程(Stored Procere )是一組為了完成特定功能的SQL 語句
集,經編譯後存儲在資料庫中。用戶通過指定存儲過程的名字並給出參數
(如果該存儲過程帶有參數)來執行它。存儲過程是資料庫中的一個重要
對象,任何一個設計良好的資料庫應用程序都應該用到存儲過程。
存儲過程是由流控制和SQL 語句書寫的過程,這個過程經編譯和優化後
存儲在資料庫伺服器中,應用程序使用時只要調用即可。在ORACLE 中,
若干個有聯系的過程可以組合在一起構成程序包。

優點:存儲過程只在創造時進行編譯,以後每次執行存儲過程都不需再重新編譯,而一般SQL語句每執行一次就編譯一次,所以使用存儲過程可提高資料庫執行速度。
2.當對資料庫進行復雜操作時(如對多個表進行Update、Insert、Query、Delete時),可將此復雜操作用存儲過程封裝起來與資料庫提供的事務處理結合一起使用。
3.存儲過程可以重復使用,可減少資料庫開發人員的工作量。
4.安全性高,可設定只有某用戶才具有對指定存儲過程的使用權。

你還是給我點分啥,寫得我手都酸痛了。

❼ Oracle的存儲空間的基本單位是什麼

Oracle數據塊(block)是Oracle的最小存儲單元。
區段(extent)是一組連續的Oracle數據塊(block),它是Oracle磁碟分配的最小單元。
段(segment)是在Oracle資料庫中佔有磁碟空間的對象,它們由一批區段(extent)所組成。

❽ oracle怎樣存儲文件,能存儲哪些文件

默認情況下
數據文件 *.dbf
控制文件 *.ctl
日誌文件 *.log
參數文件 *.ora
跟蹤文件 *.trc
警告文件 *.log
exp文件 *.dmp

❾ 如何將照片存儲在oracle中

在開發過程中,經常會遇到oracle中存圖片的情況,下面就為您想介紹一個可以輕松在oracle中存圖片的方法,希望對您能有所幫助。
一個存儲圖片文件的過程,任何開發工具都可以通過調用過程把圖片文存儲到資料庫中。
oracle中存圖片的詳細步驟:
SQL> connect chanet/chanet@oradb;

已連接。
SQL> CREATE TABLE IMAGE_LOB (T_ID VARCHAR2 (5) NOT NULL,T_IMAGE BLOB NOT NULL);

表已創建。
SQL> CREATE OR REPLACE DIRECTORY IMAGES AS 'C:\Oracle'; --圖片目錄
目錄已創建。
SQL> CREATE OR REPLACE PROCEDURE IMG_INSERT (TID VARCHAR2,FILENAME VARCHAR2) AS F_LOB BFILE; B_LOB BLOB; BEGIN INSERT INTO IMAGE_LOB (T_ID, T_IMAGE) VALUES (TID,EMPTY_BLOB ()) RETURN T_IMAGE INTO B_LOB; F_LOB:= BFILENAME ('IMAGES', FILENAME); DBMS_LOB.FILEOPEN (F_LOB, DBMS_LOB.FILE_READONLY); DBMS_LOB.LOADFROMFILE (B_LOB, F_LOB, DBMS_LOB.GETLENGTH (F_LOB)); DBMS_LOB.FILECLOSE (F_LOB); COMMIT; END; /

過程已創建。
SQL> EXEC IMG_INSERT('1','f_TEST.jpg');

PL/SQL 過程已成功完成。

❿ oracle 存儲過程中的 =>是什麼意思

就相當於=號。exec test(變數名=>值,...)這樣寫 括弧里的變數位子可以改變,不用擔心變數和值得位子問題。
如果你不想這么些。
假設這樣寫:exec test(60,7); 這樣的話。你第一個參數就是nterval,第二個參數就是retention.....

熱點內容
一台伺服器多個同段地址怎麼通訊 發布:2025-01-20 16:45:58 瀏覽:734
i7源碼 發布:2025-01-20 16:40:48 瀏覽:983
抽簽源碼 發布:2025-01-20 16:38:35 瀏覽:62
密碼箱怎麼鎖住 發布:2025-01-20 16:32:17 瀏覽:31
編譯隔離 發布:2025-01-20 16:28:54 瀏覽:358
從哪裡看自己的qq賬號和密碼 發布:2025-01-20 16:22:33 瀏覽:400
sql語句動態 發布:2025-01-20 16:18:22 瀏覽:298
sql表或的語句 發布:2025-01-20 16:00:49 瀏覽:163
西瓜視頻怎麼緩存不了電影了 發布:2025-01-20 16:00:45 瀏覽:890
javatimer 發布:2025-01-20 15:55:56 瀏覽:64