- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有办法确定 Microsoft SQLServer 数据库中的列是“geometry”还是“geography”?
理想情况下,我想使用 Java/JDBC 以编程方式执行此操作。我尝试过使用 java.sql.ResultSetMetaData 但得到了不连贯的响应。
String className = rsmd.getColumnClassName(colID));
System.out.println(className);
输出:
"[B"
如果无法通过 JDBC/ResultSetMetaData 完成此操作,是否可以使用 SQL 查询来代替?
最佳答案
不幸的是,无法通过 JDBC ResultSetMetaData 类获取此信息。至少使用 Microsoft 的最新 JDBC 驱动程序 (sqljdbc_4.0.2206) 是不行的。
当前获取此信息的唯一方法是通过查询。示例:
String sql = "SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS " +
"WHERE TABLE_NAME='" + tableName + "' AND COLUMN_NAME='" + columnName + "'";
我通过反编译SQLServerResultSetMetaData.class得出了这个结论。 getColumnClassName()
方法的源代码调用此:
this.rs.getColumn(paramInt).getTypeInfo().getSSType().getJDBCType().className();
该链中的关键方法是 getSSType()
,它返回 SSType。 SSType 类包含数据库中的数据类型和 JDBC 数据类型之间的映射。没有“几何”或“地理”的映射。恕我直言,这是一个错误。这是 SSType 的来源:
package com.microsoft.sqlserver.jdbc;
enum SSType
{
UNKNOWN(SSType.Category.UNKNOWN, "unknown", JDBCType.UNKNOWN),
TINYINT(SSType.Category.NUMERIC, "tinyint", JDBCType.TINYINT),
BIT(SSType.Category.NUMERIC, "bit", JDBCType.BIT),
SMALLINT(SSType.Category.NUMERIC, "smallint", JDBCType.SMALLINT),
INTEGER(SSType.Category.NUMERIC, "int", JDBCType.INTEGER),
BIGINT(SSType.Category.NUMERIC, "bigint", JDBCType.BIGINT),
FLOAT(SSType.Category.NUMERIC, "float", JDBCType.DOUBLE),
REAL(SSType.Category.NUMERIC, "real", JDBCType.REAL),
SMALLDATETIME(SSType.Category.DATETIME, "smalldatetime", JDBCType.TIMESTAMP),
DATETIME(SSType.Category.DATETIME, "datetime", JDBCType.TIMESTAMP),
DATE(SSType.Category.DATE, "date", JDBCType.DATE),
TIME(SSType.Category.TIME, "time", JDBCType.TIME),
DATETIME2(SSType.Category.DATETIME2, "datetime2", JDBCType.TIMESTAMP),
DATETIMEOFFSET(SSType.Category.DATETIMEOFFSET, "datetimeoffset", JDBCType.DATETIMEOFFSET),
SMALLMONEY(SSType.Category.NUMERIC, "smallmoney", JDBCType.DECIMAL),
MONEY(SSType.Category.NUMERIC, "money", JDBCType.DECIMAL),
CHAR(SSType.Category.CHARACTER, "char", JDBCType.CHAR),
VARCHAR(SSType.Category.CHARACTER, "varchar", JDBCType.VARCHAR),
VARCHARMAX(SSType.Category.LONG_CHARACTER, "varchar", JDBCType.LONGVARCHAR),
TEXT(SSType.Category.LONG_CHARACTER, "text", JDBCType.LONGVARCHAR),
NCHAR(SSType.Category.NCHARACTER, "nchar", JDBCType.NCHAR),
NVARCHAR(SSType.Category.NCHARACTER, "nvarchar", JDBCType.NVARCHAR),
NVARCHARMAX(SSType.Category.LONG_NCHARACTER, "nvarchar", JDBCType.LONGNVARCHAR),
NTEXT(SSType.Category.LONG_NCHARACTER, "ntext", JDBCType.LONGNVARCHAR),
BINARY(SSType.Category.BINARY, "binary", JDBCType.BINARY),
VARBINARY(SSType.Category.BINARY, "varbinary", JDBCType.VARBINARY),
VARBINARYMAX(SSType.Category.LONG_BINARY, "varbinary", JDBCType.LONGVARBINARY),
IMAGE(SSType.Category.LONG_BINARY, "image", JDBCType.LONGVARBINARY),
DECIMAL(SSType.Category.NUMERIC, "decimal", JDBCType.DECIMAL),
NUMERIC(SSType.Category.NUMERIC, "numeric", JDBCType.NUMERIC),
GUID(SSType.Category.GUID, "uniqueidentifier", JDBCType.CHAR),
SQL_VARIANT(SSType.Category.VARIANT, "sql_variant", JDBCType.VARCHAR),
UDT(SSType.Category.UDT, "udt", JDBCType.VARBINARY),
XML(SSType.Category.XML, "xml", JDBCType.LONGNVARCHAR),
TIMESTAMP(SSType.Category.TIMESTAMP, "timestamp", JDBCType.BINARY);
final SSType.Category category;
private final String name;
private final JDBCType jdbcType;
private SSType(SSType.Category paramCategory, String paramString, JDBCType paramJDBCType)
{
this.category = paramCategory;
this.name = paramString;
this.jdbcType = paramJDBCType;
}
public String toString()
{
return this.name;
}
final JDBCType getJDBCType()
{
return this.jdbcType;
}
boolean convertsTo(JDBCType paramJDBCType)
{
return SSType.GetterConversion.converts(this, paramJDBCType);
}
}
关于java - SQLServer - 确定列是几何列还是地理列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27297387/
我想知道是否可以将简单的位图转换为几何对象 最佳答案 是的,您可以使用跟踪。 Potrace是一个开源的位图到矢量跟踪器库。 然而,位图追踪并不完美。对于高质量的矢量图像,line tracer 一般
这类似于this question,但是却相反。 我有两个地理位置(纬度,经度)A和B。假设它们相距40海里。我想计算在A和B之间的直线上,从A点起10海里处的坐标。数学(我每天使用的其他一些数学),
我想计算一个点到由 2 个点定义的直线的距离。 我正在使用 javascript,这就是我使用维基百科得出的结论:https://en.wikipedia.org/wiki/Distance_from
我对 boost::geomentry 有疑问。 #include #include #include #include int main(){ typedef boost::geometry
我有一个问题。我想将四边形与四边形相交。 int main(){ typedef boost::geometry::model::point_xy TBoostPoint; typedef b
我无法在 OpleGL 中获得正确的转换。 我有 point3D - P(X,Y,Z) 和投影矩阵 M,它等于 K*(R|T) 其中 K - 相机标定矩阵 (R|T)——点(物)坐标系变换(R——旋转
我想做一个凸面(由一些直线或圆弧组成)围绕它的几何中心(Cx,Cy)旋转。同时凸面两侧有两个圆(由半径给出:R 和左中心:(Lx,Cy),右中心:(Rx,Cy))。表示与几何(Cy) X 轴相同的圆心
我有一个 DrawingVisual表示路径的元素,该路径的几何描述由此 syntax : "m106,59.3c0-1.98,0,0-4.95,0.989-3.96,0.989-13.8,3.96-
如何将我自己的数据集转换为可供 pytorch 几何图形神经网络使用的数据集? 所有教程都使用已转换为 pytorch 可用的现有数据集。例如,如果我有自己的点云数据集,我如何使用它来训练图神经网络的
我正在使用 PyQt5 和 OpenCV。我想创建一个读取视频帧并执行橡皮筋拉伸(stretch)以生成几何图形的类,该几何图形将由不同的类用于裁剪视频流(此示例中不包括第二类)。 在此示例中,从网络
我们有两个 (PostgreSQL 9.2) 表。第一城市: loc_id | integer | not null name | character
我有一张 table : create table if not exists places( id bigserial not null constraint places_pkey primary
我在 postgresql 中有一个带有 PostGIS geometry(point, 4326) 列(位置,使用 SRID 4326)的表,我有一个使用 SQL Alchemy 更新表(其余列)的
我开始使用 c++11 并尝试使用 boost geometry 运行一些示例代码 #include #include #include #include BOOST_GEOMETRY_REG
我有一个存储为 csv 文件的数据框,其中一列是多边形对象。但是,此列存储为字符串而不是 GeoPandas 几何对象。如何将此列转换为 Geopandas 几何对象以便执行地理分析? 这是我的数据的
我从两台相同品牌的相机拍摄的两张图像相距一定距离,拍摄相同的场景。我想计算两个相机之间的真实世界旋转和平移。为了实现这一点,我首先提取了两个图像的 SIFT 特征并匹配它们。 我现在有了基本矩阵以及单
我目前正在使用 boost 几何/空间索引库,以便对 3d 边界框执行范围查询。例如,我能够获得与查询边界框重叠的所有边界框的列表。 文档 ( http://www.boost.org/doc/lib
boost::geometry::model::point 将点的维度作为编译时参数。例如, typedef bg::model::point point; 有没有什么方法可以在运行时指定维度,比如说
我一直在寻找一种在 three.js 中将 uv 映射添加到我的自定义几何体的方法。我找到了这样做的方法,但我找到的解决方案都没有用。谁能解释一下 uv-mapping 的工作原理以及如何正确使用它?
在我的应用程序中,用户可以使用 iPhone 的 GPS 定义足球场的三个角落,方法是一个接一个地走到角落,然后点击按钮。这很好用,我可以在屏幕上绘制生成的矩形,类似于它在 Google map 中的
我是一名优秀的程序员,十分优秀!