2016-10-16 5 views
0

У меня есть требование для запроса SyBase и возврата параметров и типов данных для хранимой процедуры. Я ищу SQL-запрос для этого. В SQL Server я могу использоватьSQL-запрос для получения хранимых параметров процедуры и типов данных в SyBase

select parameters.name as fieldname, types.name as field type 
from sys.parameters 
inner join sys.type on parameters.system_type_id = types.system_type_id 
where object_id = <id> 
and types.name <> 'sys name' 
order by filename 

Так что я ищу что-то подобное в SyBase. Я знаю идентификатор хранимой процедуры, мне просто нужно извлечь эту информацию о параметрах.

ответ

0

Мне удалось это сделать самостоятельно. SQL, чтобы получить параметр и тип данных хранимой процедуры.

SELECT col.name AS fieldname, ty.name AS fieldtype 
FROM sysobjects t 
JOIN syscolumns col ON t.id=col.id 
JOIN systypes ty ON ty.usertype=col.usertype 
WHERE t.id={key} 

Чтобы получить то же самое для стола.

SELECT col.name AS fieldname, ty.name AS fieldtype, 
CASE WHEN col.name IN (
index_col(object_name(si.id), indid, 1), 
index_col(object_name(si.id), indid, 2), 
index_col(object_name(si.id), indid, 3), 
index_col(object_name(si.id), indid, 4), 
index_col(object_name(si.id), indid, 5), 
index_col(object_name(si.id), indid, 6), 
index_col(object_name(si.id), indid, 7), 
index_col(object_name(si.id), indid, 8) 
) THEN 1 ELSE 0 END AS isPK 
FROM sysobjects t 
JOIN syscolumns col ON t.id=col.id 
JOIN systypes ty ON ty.usertype=col.usertype 
LEFT JOIN sysindexes si ON si.id=t.id AND si.name LIKE '%pk%' 
WHERE t.id={key} 
Смежные вопросы