Первый sql_text не должен заканчиваться ;
и должно быть:
sql_text := 'SELECT cols.column_name
FROM all_constraints cons, all_cons_columns cols
WHERE cols.table_name = '''||t_name||'''
AND cons.constraint_type = ''P''
AND cons.constraint_name = cols.constraint_name
AND cons.owner = cols.owner
ORDER BY cols.table_name, cols.position';
Obs: эта функция не будет работать, если тип ПК не NUMBER
.
Obs2: имя_т_ должно быть в верхнем регистре ...