从存储过程数据类型SQL确定返回的列

时间:2013-09-14 19:27:38

标签: sql sql-server

我可以在SQL Server Management Studio中执行存储过程,但我无权查看它的定义。

如何确定每个返回列的数据类型?

我可以看到输入参数类型,但不能查看返回行的类型。

2 个答案:

答案 0 :(得分:0)

我可能会错误地提出您的问题,但我会尝试回答这个问题,也许这不是一个解决方案,但至少可以尝试......

您可以使用编程语言并调用存储过程,例如Java的。 并使用ResultSetMetaData检查退货。

 ResultSet rs = ...
 ResultSetMetaData rsmd = rs.getMetaData();
 int numberOfColumns = rsmd.getColumnCount();
 String columnLabel = rsmd.getColumnLabel(1);
 String columnName = rsmd.getColumnName(1);
 int columnType = rsmd.getColumnType(1);
 String columnTypeName = getColumnTypeName(1);

 etc

这当然是因为我假设您没有任何权利以任何方式检查存储过程(无法访问系统表等等。但只有您可以访问的是您可以运行SP) 。

http://docs.oracle.com/javase/6/docs/api/java/sql/ResultSetMetaData.html

答案 1 :(得分:-1)

此表“sys.parameters”将为您提供有关SP的所有详细信息。

谢谢!