Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
f6c0a827
提交
f6c0a827
authored
5月 06, 2011
作者:
Thomas Mueller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Documentation.
上级
9b0bd1b3
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
14 个修改的文件
包含
6129 行增加
和
5728 行删除
+6129
-5728
help.csv
h2/src/docsrc/help/help.csv
+3
-0
advanced.html
h2/src/docsrc/html/advanced.html
+7
-4
changelog.html
h2/src/docsrc/html/changelog.html
+3
-3
features.html
h2/src/docsrc/html/features.html
+8
-7
performance.html
h2/src/docsrc/html/performance.html
+2
-2
roadmap.html
h2/src/docsrc/html/roadmap.html
+1
-1
tutorial.html
h2/src/docsrc/html/tutorial.html
+7
-2
_docs_en.utf8.txt
h2/src/docsrc/text/_docs_en.utf8.txt
+2067
-1905
_docs_ja.utf8.txt
h2/src/docsrc/text/_docs_ja.utf8.txt
+2067
-1905
_docs_en.properties
h2/src/docsrc/textbase/_docs_en.properties
+1946
-1892
DbSettings.java
h2/src/main/org/h2/constant/DbSettings.java
+1
-1
Function.java
h2/src/main/org/h2/expression/Function.java
+1
-1
help.csv
h2/src/main/org/h2/res/help.csv
+9
-5
LobStorage.java
h2/src/main/org/h2/store/LobStorage.java
+7
-0
没有找到文件。
h2/src/docsrc/help/help.csv
浏览文件 @
f6c0a827
...
@@ -3396,6 +3396,9 @@ Instead of a file, an URL may be used, for example
...
@@ -3396,6 +3396,9 @@ Instead of a file, an URL may be used, for example
""jar:file:///c:/temp/example.zip!/org/example/nested.csv"".
""jar:file:///c:/temp/example.zip!/org/example/nested.csv"".
To read a stream from the classpath, use the prefix ""classpath:"".
To read a stream from the classpath, use the prefix ""classpath:"".
For performance reason, CSVREAD should not be used inside a join.
Instead, import the data first (possibly into a temporary table) and then use the table.
Admin rights are required to execute this command.
Admin rights are required to execute this command.
","
","
CALL CSVREAD('test.csv');
CALL CSVREAD('test.csv');
...
...
h2/src/docsrc/html/advanced.html
浏览文件 @
f6c0a827
...
@@ -1475,9 +1475,9 @@ If the logical file is larger than the maximum file size, then the file is split
...
@@ -1475,9 +1475,9 @@ If the logical file is larger than the maximum file size, then the file is split
<p>
<p>
More physical files (
<code>
*.2.part, *.3.part
</code>
) are automatically created / deleted if needed.
More physical files (
<code>
*.2.part, *.3.part
</code>
) are automatically created / deleted if needed.
The maximum physical file size of a block is 2^30 bytes, which is also called 1 GiB or 1 GB.
The maximum physical file size of a block is 2^30 bytes, which is also called 1 GiB or 1 GB.
However this can be changed if required, by specifying the block size in the file name.
However this can be changed if required, by specifying the block size in the file name.
The file name format is:
<code>
split:
<
x
>
:
<
fileName
>
</code>
where the file size per block is 2^x.
The file name format is:
<code>
split:
<
x
>
:
<
fileName
>
</code>
where the file size per block is 2^x.
For 1 MiB block sizes, use x = 20 (because 2^20 is 1 MiB).
For 1 MiB block sizes, use x = 20 (because 2^20 is 1 MiB).
The following file name means the logical file is split into 1 MiB blocks:
<code>
split:20:test.h2.db
</code>
.
The following file name means the logical file is split into 1 MiB blocks:
<code>
split:20:test.h2.db
</code>
.
An example database URL for this case is
<code>
jdbc:h2:split:20:~/test
</code>
.
An example database URL for this case is
<code>
jdbc:h2:split:20:~/test
</code>
.
</p>
</p>
...
@@ -1506,10 +1506,13 @@ prior opening a database connection.
...
@@ -1506,10 +1506,13 @@ prior opening a database connection.
</p>
</p>
<p>
<p>
Since version 1.2.140 it is possible to let the old h2 classes (v 1.2.128) connect to the database.
Since version 1.2.140 it is possible to let the old h2 classes (v 1.2.128) connect to the database.
The automatic upgrade .jar file must be present, and the URL must start with
<code>
jdbc:h2v1_1:
</code>
.
The automatic upgrade .jar file must be present, and the URL must start with
<code>
jdbc:h2v1_1:
</code>
(the JDBC driver class is
<code>
org.h2.upgrade.v1_1.Driver
</code>
).
If the database should automatically connect using the old version if a database with the old format exists
If the database should automatically connect using the old version if a database with the old format exists
(without upgrade), and use the new version otherwise, then append
<code>
;NO_UPGRADE=TRUE
</code>
(without upgrade), and use the new version otherwise, then append
<code>
;NO_UPGRADE=TRUE
</code>
to the database URL.
to the database URL.
Please note the old driver did not process the system property
<code>
"h2.baseDir"
</code>
correctly,
so that using this setting is not supported when upgrading.
</p>
</p>
<h2
id=
"limits_limitations"
>
Limits and Limitations
</h2>
<h2
id=
"limits_limitations"
>
Limits and Limitations
</h2>
...
...
h2/src/docsrc/html/changelog.html
浏览文件 @
f6c0a827
...
@@ -37,7 +37,7 @@ Change Log
...
@@ -37,7 +37,7 @@ Change Log
08004 instead of 28000, which resulted in the wrong error message.
08004 instead of 28000, which resulted in the wrong error message.
</li><li>
In some cases, creating a new table or altering an existing table threw the exception:
</li><li>
In some cases, creating a new table or altering an existing table threw the exception:
Unique index or primary key violation: "PRIMARY KEY ON """".PAGE_INDEX".
Unique index or primary key violation: "PRIMARY KEY ON """".PAGE_INDEX".
</li><li>
The Shell tool no longer supports the built-in command "show",
</li><li>
The Shell tool no longer supports the built-in command "show",
because it is a legal SQL statement for H2 and MySQL.
because it is a legal SQL statement for H2 and MySQL.
However, the "describe" command is still supported, and now lists all tables
However, the "describe" command is still supported, and now lists all tables
if called without parameter.
if called without parameter.
...
@@ -45,13 +45,13 @@ Change Log
...
@@ -45,13 +45,13 @@ Change Log
did not work for not-persisted tables in a persisted database.
did not work for not-persisted tables in a persisted database.
It threw a ClassCastException.
It threw a ClassCastException.
</li><li>
Issue 308: Statement.getGeneratedKeys() now returns an empty result set if no key was generated.
</li><li>
Issue 308: Statement.getGeneratedKeys() now returns an empty result set if no key was generated.
</li><li>
The h2small.jar (created with build jarSmall) included the Android API.
</li><li>
The h2small.jar (created with build jarSmall) included the Android API.
This has been removed, shrinking the jar file by 21 KB.
This has been removed, shrinking the jar file by 21 KB.
</li><li>
When creating a table, the precision must now be at least as large as the scale.
</li><li>
When creating a table, the precision must now be at least as large as the scale.
</li><li>
Support for Java 1.3 and Java 1.4 has been removed.
</li><li>
Support for Java 1.3 and Java 1.4 has been removed.
</li><li>
Improved error message for syntax error: the list of expected tokens was sometimes not set correctly.
</li><li>
Improved error message for syntax error: the list of expected tokens was sometimes not set correctly.
</li><li>
Database file growth can now be limited using the database setting PAGE_STORE_MAX_GROWTH.
</li><li>
Database file growth can now be limited using the database setting PAGE_STORE_MAX_GROWTH.
Slower growth may slow down operation, but speed up closing database.
Slower growth may slow down operation, but speed up closing database.
</li></ul>
</li></ul>
<h2>
Version 1.3.154 (2011-04-04)
</h2>
<h2>
Version 1.3.154 (2011-04-04)
</h2>
...
...
h2/src/docsrc/html/features.html
浏览文件 @
f6c0a827
...
@@ -1080,8 +1080,8 @@ or the SQL statement <code>SET MODE MySQL</code>.
...
@@ -1080,8 +1080,8 @@ or the SQL statement <code>SET MODE MySQL</code>.
</li></ul>
</li></ul>
<p>
<p>
Text comparison in MySQL is case insensitive by default, while in H2 it is case sensitive (as in most other databases).
Text comparison in MySQL is case insensitive by default, while in H2 it is case sensitive (as in most other databases).
H2 does support case insensitive text comparison, but it needs to be set separately,
H2 does support case insensitive text comparison, but it needs to be set separately,
using
<code>
SET IGNORECASE TRUE
</code>
.
using
<code>
SET IGNORECASE TRUE
</code>
.
This affects comparison using
<code>
=, LIKE, REGEXP
</code>
.
This affects comparison using
<code>
=, LIKE, REGEXP
</code>
.
</p>
</p>
...
@@ -1146,7 +1146,8 @@ jdbc:h2:/data/test;AUTO_SERVER=TRUE
...
@@ -1146,7 +1146,8 @@ jdbc:h2:/data/test;AUTO_SERVER=TRUE
Use the same URL for all connections to this database. Internally, when using this mode,
Use the same URL for all connections to this database. Internally, when using this mode,
the first connection to the database is made in embedded mode, and additionally a server
the first connection to the database is made in embedded mode, and additionally a server
is started internally (as a daemon thread). If the database is already open in another process,
is started internally (as a daemon thread). If the database is already open in another process,
the server mode is used automatically.
the server mode is used automatically. The IP address and port of the server are stored in the file
<code>
.lock.db
</code>
, that's why in-memory databases can't be supported.
</p>
</p>
<p>
<p>
The application that opens the first connection to the database uses the embedded mode,
The application that opens the first connection to the database uses the embedded mode,
...
@@ -1613,13 +1614,13 @@ public class TriggerSample implements Trigger {
...
@@ -1613,13 +1614,13 @@ public class TriggerSample implements Trigger {
String tableName, boolean before, int type) {
String tableName, boolean before, int type) {
// initialize the trigger object is necessary
// initialize the trigger object is necessary
}
}
public void fire(Connection conn,
public void fire(Connection conn,
Object[] oldRow, Object[] newRow)
Object[] oldRow, Object[] newRow)
throws SQLException {
throws SQLException {
// the trigger is fired
// the trigger is fired
}
}
public void close() {
public void close() {
// the database is closed
// the database is closed
}
}
...
@@ -1627,7 +1628,7 @@ public class TriggerSample implements Trigger {
...
@@ -1627,7 +1628,7 @@ public class TriggerSample implements Trigger {
public void remove() {
public void remove() {
// the trigger was dropped
// the trigger was dropped
}
}
}
}
</pre>
</pre>
<p>
<p>
...
@@ -1652,7 +1653,7 @@ import org.h2.tools.TriggerAdapter;
...
@@ -1652,7 +1653,7 @@ import org.h2.tools.TriggerAdapter;
...
...
public class TriggerSample implements TriggerAdapter {
public class TriggerSample implements TriggerAdapter {
public void fire(Connection conn, ResultSet oldRow, ResultSet newRow)
public void fire(Connection conn, ResultSet oldRow, ResultSet newRow)
throws SQLException {
throws SQLException {
// the trigger is fired
// the trigger is fired
}
}
...
...
h2/src/docsrc/html/performance.html
浏览文件 @
f6c0a827
...
@@ -679,8 +679,8 @@ TEST.TEST_DATA read: 85 (100%)
...
@@ -679,8 +679,8 @@ TEST.TEST_DATA read: 85 (100%)
*/
*/
</pre>
</pre>
<p>
<p>
The cache will prevent the pages are read twice. H2 reads all columns of the row
The cache will prevent the pages are read twice. H2 reads all columns of the row
unless only the columns in the index are read. Except for large CLOB and BLOB, which are not store in the table.
unless only the columns in the index are read. Except for large CLOB and BLOB, which are not store in the table.
</p>
</p>
<h3>
Special Optimizations
</h3>
<h3>
Special Optimizations
</h3>
...
...
h2/src/docsrc/html/roadmap.html
浏览文件 @
f6c0a827
...
@@ -417,6 +417,7 @@ See also <a href="build.html#providing_patches">Providing Patches</a>.
...
@@ -417,6 +417,7 @@ See also <a href="build.html#providing_patches">Providing Patches</a>.
</li><li>
User defined functions: allow to store the bytecode (of just the class, or the jar file of the extension) in the database.
</li><li>
User defined functions: allow to store the bytecode (of just the class, or the jar file of the extension) in the database.
</li><li>
Compatibility: ResultSet.getObject() on a CLOB (TEXT) should return String for PostgreSQL and MySQL.
</li><li>
Compatibility: ResultSet.getObject() on a CLOB (TEXT) should return String for PostgreSQL and MySQL.
</li><li>
Optimizer: WHERE X=? AND Y IN(?), it always uses the index on Y. Should be cost based.
</li><li>
Optimizer: WHERE X=? AND Y IN(?), it always uses the index on Y. Should be cost based.
</li><li>
Common Table Expression (CTE) / recursive queries: support parameters. Issue 314.
</li><li>
Oracle compatibility: support INSERT ALL.
</li><li>
Oracle compatibility: support INSERT ALL.
</li><li>
Issue 178: Optimizer: index usage when both ascending and descending indexes are available.
</li><li>
Issue 178: Optimizer: index usage when both ascending and descending indexes are available.
</li><li>
Issue 179: Related subqueries in HAVING clause.
</li><li>
Issue 179: Related subqueries in HAVING clause.
...
@@ -454,7 +455,6 @@ See also <a href="build.html#providing_patches">Providing Patches</a>.
...
@@ -454,7 +455,6 @@ See also <a href="build.html#providing_patches">Providing Patches</a>.
</li><li>
Common Table Expression (CTE) / recursive queries: avoid endless loop. Issue 218.
</li><li>
Common Table Expression (CTE) / recursive queries: avoid endless loop. Issue 218.
</li><li>
Common Table Expression (CTE) / recursive queries: support multiple named queries. Issue 220.
</li><li>
Common Table Expression (CTE) / recursive queries: support multiple named queries. Issue 220.
</li><li>
Common Table Expression (CTE) / recursive queries: identifier scope may be incorrect. Issue 222.
</li><li>
Common Table Expression (CTE) / recursive queries: identifier scope may be incorrect. Issue 222.
</li><li>
Common Table Expression (CTE) / recursive queries: support parameters.
</li><li>
Log long running transactions (similar to long running statements).
</li><li>
Log long running transactions (similar to long running statements).
</li><li>
Parameter data type is data type of other operand. Issue 205.
</li><li>
Parameter data type is data type of other operand. Issue 205.
</li><li>
Some combinations of nested join with right outer join are not supported.
</li><li>
Some combinations of nested join with right outer join are not supported.
...
...
h2/src/docsrc/html/tutorial.html
浏览文件 @
f6c0a827
...
@@ -795,6 +795,11 @@ A CSV file can be read using the function <code>CSVREAD</code>. Example:
...
@@ -795,6 +795,11 @@ A CSV file can be read using the function <code>CSVREAD</code>. Example:
<pre>
<pre>
SELECT * FROM CSVREAD('test.csv');
SELECT * FROM CSVREAD('test.csv');
</pre>
</pre>
<p>
Please note for performance reason,
<code>
CSVREAD
</code>
should not be used inside a join.
Instead, import the data first (possibly into a temporary table), create the required indexes
if necessary, and then query this table.
</p>
<h3>
Importing Data from a CSV File
</h3>
<h3>
Importing Data from a CSV File
</h3>
<p>
<p>
...
@@ -1270,7 +1275,7 @@ The <code>destroy-method</code> will help prevent exceptions on hot-redeployment
...
@@ -1270,7 +1275,7 @@ The <code>destroy-method</code> will help prevent exceptions on hot-redeployment
<h3>
Error Code Incompatibility
</h3>
<h3>
Error Code Incompatibility
</h3>
<p>
<p>
There is an incompatibility with the Spring JdbcTemplate and H2 version 1.3.154 and newer,
There is an incompatibility with the Spring JdbcTemplate and H2 version 1.3.154 and newer,
because of a change in the error code. This will cause the JdbcTemplate to not detect
because of a change in the error code. This will cause the JdbcTemplate to not detect
a duplicate key condition, and so a
<code>
DataIntegrityViolationException
</code>
is thrown instead of
a duplicate key condition, and so a
<code>
DataIntegrityViolationException
</code>
is thrown instead of
<code>
DuplicateKeyException
</code>
.
<code>
DuplicateKeyException
</code>
.
See also
<a
href=
"https://jira.springsource.org/browse/SPR-8235"
>
the issue SPR-8235
</a>
.
See also
<a
href=
"https://jira.springsource.org/browse/SPR-8235"
>
the issue SPR-8235
</a>
.
...
@@ -1285,7 +1290,7 @@ The workaround is to add the following XML file to the root of the classpath:
...
@@ -1285,7 +1290,7 @@ The workaround is to add the following XML file to the root of the classpath:
http://www.springframework.org/schema/beans/spring-beans.xsd"
http://www.springframework.org/schema/beans/spring-beans.xsd"
>
>
<
import resource="classpath:org/springframework/jdbc/support/sql-error-codes.xml"/
>
<
import resource="classpath:org/springframework/jdbc/support/sql-error-codes.xml"/
>
<
bean id
=
"H2" class="org.springframework.jdbc.support.SQLErrorCodes"
>
<
bean id
=
"H2" class="org.springframework.jdbc.support.SQLErrorCodes"
>
<
property name="badSqlGrammarCodes"
>
<
property name="badSqlGrammarCodes"
>
<
value
>
<
value
>
42000,42001,42101,42102,42111,42112,42121,42122,42132
42000,42001,42101,42102,42111,42112,42121,42122,42132
...
...
h2/src/docsrc/text/_docs_en.utf8.txt
浏览文件 @
f6c0a827
差异被折叠。
点击展开。
h2/src/docsrc/text/_docs_ja.utf8.txt
浏览文件 @
f6c0a827
差异被折叠。
点击展开。
h2/src/docsrc/textbase/_docs_en.properties
浏览文件 @
f6c0a827
差异被折叠。
点击展开。
h2/src/main/org/h2/constant/DbSettings.java
浏览文件 @
f6c0a827
...
@@ -246,7 +246,7 @@ public class DbSettings extends SettingsBase {
...
@@ -246,7 +246,7 @@ public class DbSettings extends SettingsBase {
public
final
boolean
optimizeUpdate
=
get
(
"OPTIMIZE_UPDATE"
,
true
);
public
final
boolean
optimizeUpdate
=
get
(
"OPTIMIZE_UPDATE"
,
true
);
/**
/**
* Database setting <code>PAGE_STORE_MAX_GROWTH
_RATE
</code>
* Database setting <code>PAGE_STORE_MAX_GROWTH</code>
* (default: Integer.MAX_VALUE).<br />
* (default: Integer.MAX_VALUE).<br />
* The maximum number of pages the file grows at any time.
* The maximum number of pages the file grows at any time.
*/
*/
...
...
h2/src/main/org/h2/expression/Function.java
浏览文件 @
f6c0a827
...
@@ -761,7 +761,7 @@ public class Function extends Expression implements FunctionCall {
...
@@ -761,7 +761,7 @@ public class Function extends Expression implements FunctionCall {
if
(
v0
==
ValueNull
.
INSTANCE
)
{
if
(
v0
==
ValueNull
.
INSTANCE
)
{
expr
=
argList
[
2
];
expr
=
argList
[
2
];
}
else
{
}
else
{
expr
=
argList
[
1
];
expr
=
argList
[
1
];
}
}
Value
v
=
expr
.
getValue
(
session
);
Value
v
=
expr
.
getValue
(
session
);
result
=
v
.
convertTo
(
dataType
);
result
=
v
.
convertTo
(
dataType
);
...
...
h2/src/main/org/h2/res/help.csv
浏览文件 @
f6c0a827
...
@@ -192,7 +192,7 @@ CREATE [ CACHED | MEMORY ] [ TEMP | [ GLOBAL | LOCAL ] TEMPORARY ]
...
@@ -192,7 +192,7 @@ CREATE [ CACHED | MEMORY ] [ TEMP | [ GLOBAL | LOCAL ] TEMPORARY ]
TABLE [ IF NOT EXISTS ] name
TABLE [ IF NOT EXISTS ] name
{ { ( { columnDefinition | constraint } [,...] ) [ AS select ] }
{ { ( { columnDefinition | constraint } [,...] ) [ AS select ] }
| { AS select } }
| { AS select } }
[ ENGINE tableEngineName ] [
TRANSACTIONAL ] [ NOT PERSISTENT
]
[ ENGINE tableEngineName ] [
NOT PERSISTENT ] [ TRANSACTIONAL
]
","
","
Creates a new table."
Creates a new table."
"Commands (DDL)","CREATE TRIGGER","
"Commands (DDL)","CREATE TRIGGER","
...
@@ -892,7 +892,7 @@ MOD(long, long)
...
@@ -892,7 +892,7 @@ MOD(long, long)
","
","
The modulo operation."
The modulo operation."
"Functions (Numeric)","CEILING","
"Functions (Numeric)","CEILING","
CEILING
(double)
{ CEILING | CEIL }
(double)
","
","
See also Java ""Math."
See also Java ""Math."
"Functions (Numeric)","DEGREES","
"Functions (Numeric)","DEGREES","
...
@@ -908,7 +908,7 @@ FLOOR(double)
...
@@ -908,7 +908,7 @@ FLOOR(double)
","
","
See also Java ""Math."
See also Java ""Math."
"Functions (Numeric)","LOG","
"Functions (Numeric)","LOG","
LOG
(double)
{ LOG | LN }
(double)
","
","
See also Java ""Math."
See also Java ""Math."
"Functions (Numeric)","LOG10","
"Functions (Numeric)","LOG10","
...
@@ -932,7 +932,7 @@ POWER(double, double)
...
@@ -932,7 +932,7 @@ POWER(double, double)
","
","
See also Java ""Math."
See also Java ""Math."
"Functions (Numeric)","RAND","
"Functions (Numeric)","RAND","
RAND
( [ int ] )
{ RAND | RANDOM }
( [ int ] )
","
","
Calling the function without parameter returns the next a pseudo random number."
Calling the function without parameter returns the next a pseudo random number."
"Functions (Numeric)","RANDOM_UUID","
"Functions (Numeric)","RANDOM_UUID","
...
@@ -1244,7 +1244,7 @@ CAST(value AS dataType)
...
@@ -1244,7 +1244,7 @@ CAST(value AS dataType)
","
","
Converts a value to another data type."
Converts a value to another data type."
"Functions (System)","COALESCE","
"Functions (System)","COALESCE","
COALESCE
(aValue, bValue [,...])
{ COALESCE | NVL }
(aValue, bValue [,...])
","
","
Returns the first value that is not null."
Returns the first value that is not null."
"Functions (System)","CONVERT","
"Functions (System)","CONVERT","
...
@@ -1321,6 +1321,10 @@ Returns the next value of the sequence."
...
@@ -1321,6 +1321,10 @@ Returns the next value of the sequence."
NULLIF(aValue, bValue)
NULLIF(aValue, bValue)
","
","
Returns NULL if 'a' is equals to 'b', otherwise 'a'."
Returns NULL if 'a' is equals to 'b', otherwise 'a'."
"Functions (System)","NVL2","
NVL2(testValue, aValue, bValue)
","
If the test value is null, then 'b' is returned."
"Functions (System)","READONLY","
"Functions (System)","READONLY","
READONLY()
READONLY()
","
","
...
...
h2/src/main/org/h2/store/LobStorage.java
浏览文件 @
f6c0a827
...
@@ -175,6 +175,13 @@ public class LobStorage {
...
@@ -175,6 +175,13 @@ public class LobStorage {
return
ValueLob
.
createSmallLob
(
type
,
small
);
return
ValueLob
.
createSmallLob
(
type
,
small
);
}
}
/**
* Read a block of data from the given LOB.
*
* @param lob the lob id
* @param seq the block sequence number
* @return the block (expanded if stored compressed)
*/
byte
[]
readBlock
(
long
lob
,
int
seq
)
throws
SQLException
{
byte
[]
readBlock
(
long
lob
,
int
seq
)
throws
SQLException
{
synchronized
(
handler
)
{
synchronized
(
handler
)
{
String
sql
=
"SELECT COMPRESSED, DATA FROM "
+
LOB_MAP
+
" M "
+
String
sql
=
"SELECT COMPRESSED, DATA FROM "
+
LOB_MAP
+
" M "
+
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论