Share via


2.1.2.245 T572, Multiset-returning external SQL-invoked functions

V0281:

The specification states the following:

 Subclause 6.1, "<data type>":
  
 <multiset type> ::=
 <data type> MULTISET
  
 Subclause 11.51, "<user-defined type definition>":
  
 <method specification> ::=
 <original method specification>
 | <overriding method specification>
  
 <original method specification> ::=
 <partial method specification> [ SELF AS RESULT ] [ SELF AS LOCATOR ]
 [ <method characteristics> ]
  
 <overriding method specification> ::=
 OVERRIDING <partial method specification>
  
 <partial method specification> ::=
 [ INSTANCE | STATIC | CONSTRUCTOR ]
 METHOD <method name> <SQL parameter declaration list>
 <returns clause>
 [ SPECIFIC <specific method name> ]
  
 ...
  
 Conformance Rules
  
 Without Feature T572, "Multiset-returning external SQL-invoked functions", conforming SQL language shall not contain a <method specification> that contains a <returns clause> that satisfies either of the following conditions:
 a) A <result cast from type> is specified that simply contains a <multiset type> and does not contain a <locator indication>.
 b) A <result cast from type> is not specified and <returns data type> simply contains a <multiset type> and does not contain a <locator indication>.
  
 Subclause 11.60, "<SQL-invoked routine>":
  
 <SQL-invoked routine> ::=
 <schema routine>
  
 <schema routine> ::=
 <schema procedure>
 | <schema function>
  
 <schema procedure> ::=
 CREATE <SQL-invoked procedure>
  
 <schema function> ::=
 CREATE <SQL-invoked function>
  
 ...
  
 <locator indication> ::=
 AS LOCATOR
  
 ...
  
 <returns clause> ::=
 RETURNS <returns type>
  
 <returns type> ::=
 <returns data type> [ <result cast> ]
 | <returns table type>
  
 ...
  
 <result cast from type> ::=
 <data type> [ <locator indication> ]
  
 <returns data type> ::=
 <data type> [ <locator indication> ]
  
 ...
  
 Conformance Rules
  
 Without Feature T572, "Multiset-returning external SQL-invoked functions", conforming SQL language shall not contain an <SQL-invoked routine> that defines a multiset-returning external function.

Microsoft SQL Server 2008 R2 and Microsoft SQL Server 2012 vary as follows:

Transact-SQL does not support this feature.