Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中如何确定数据库表列大小_Java_Sql Server_Jdbc - Fatal编程技术网

java中如何确定数据库表列大小

java中如何确定数据库表列大小,java,sql-server,jdbc,Java,Sql Server,Jdbc,我使用JDBC在java中更新SQL Server表。我更新了一个nvarchar列。问题是我不知道这个专栏有多长。如果它只有30个字符,我用35个字符更新它,那么它将失败 在我更新一个文本列之前,有没有办法找出它的长度 感谢使用getPrecision(int)方法的ResultSetMetaData类 ResultSet rs; // more code ResultSetMetaData rsmd = rs.getMetaData(); int size=rsmd.getPrecisi

我使用JDBC在java中更新SQL Server表。我更新了一个nvarchar列。问题是我不知道这个专栏有多长。如果它只有30个字符,我用35个字符更新它,那么它将失败

在我更新一个文本列之前,有没有办法找出它的长度

感谢使用
getPrecision(int)
方法的
ResultSetMetaData

ResultSet rs;

// more code

ResultSetMetaData rsmd = rs.getMetaData();
int size=rsmd.getPrecision(COLUMN_INDEX);

使用
getPrecision(int)
方法的
ResultSetMetaData

ResultSet rs;

// more code

ResultSetMetaData rsmd = rs.getMetaData();
int size=rsmd.getPrecision(COLUMN_INDEX);

您可以使用sp_columns storage proc获取大小

e、 g


还有其他一些方法,包括查询信息模式。

您可以使用存储过程中的sp\u列获取大小

e、 g


还有一些其他方法,包括查询信息模式。

此方法是特定于SQL server还是也适用于其他数据库?SQL server,但大多数dbms都有以各种方式访问的元表,SYSTABLE、sysobjects syscolumns等。MySql的描述如下。sp_columns是一个很好的api,而不是在sysobjects和syscolumns上进行连接。这种方法是特定于SQL server还是也适用于其他数据库?SQL server,但大多数dbms都有以各种方式访问的元表,如systables、sysobjects、syscolumns等。MySql的描述如下。sp_columns是一个很好的api,而不是在sysobjects和syscolumns上进行连接。因此,我的列是一个nvarchar,我得到了2147483647的精度。我希望能回到30岁左右。鉴于上述精度,我如何确定字符长度?@Andy嗯,我没有使用过
nvarchar
,所以我不是很确定。但是当我阅读的时候,我通过了下面的链接,第一个链接说它应该返回
2*n
msdn
site声明我可以存储2gb的数据,我认为这就是您得到的,并且您得到的是最大值。我的专栏是nvarchar,我得到了2147483647的精度。我希望能回到30岁左右。鉴于上述精度,我如何确定字符长度?@Andy嗯,我没有使用过
nvarchar
,所以我不是很确定。但是当我阅读的时候,我通过了下面的链接,第一个链接说它应该返回
2*n
msdn
site声明我可以存储2gb的数据,我认为这就是您得到的,并且您得到的是最大值。看见