Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE OR ALTER PROCEDURE PRO_RECRIA_VIEWS
- AS
- DECLARE VARIABLE NOME VARCHAR(1000);
- DECLARE VARIABLE TEXTO BLOB SUB_TYPE 1 SEGMENT SIZE 600;
- DECLARE VARIABLE FIELD VARCHAR(100);
- DECLARE VARIABLE FULL_SQL BLOB SUB_TYPE 1 SEGMENT SIZE 600;
- DECLARE VARIABLE CREATE_STATEMENT VARCHAR(10000);
- DECLARE VARIABLE FIELDS_STATEMENT VARCHAR(10000);
- BEGIN
- FOR SELECT TRIM(R.RDB$RELATION_NAME), R.RDB$VIEW_SOURCE
- FROM RDB$RELATIONS R
- WHERE R.RDB$VIEW_SOURCE IS NOT NULL
- ORDER BY R.RDB$RELATION_NAME INTO :NOME, :TEXTO DO
- BEGIN
- CREATE_STATEMENT = 'CREATE OR ALTER VIEW '||:NOME||'('||ASCII_CHAR(10);
- FIELDS_STATEMENT = '';
- FIELD = '';
- FULL_SQL = '';
- FOR SELECT TRIM(F.RDB$FIELD_NAME)
- FROM RDB$RELATION_FIELDS F
- WHERE F.RDB$RELATION_NAME = :NOME
- ORDER BY F.RDB$FIELD_POSITION INTO :FIELD DO
- BEGIN
- IF (FIELDS_STATEMENT = '') THEN
- BEGIN
- FIELDS_STATEMENT = ' '||:FIELD;
- END
- ELSE
- BEGIN
- FIELDS_STATEMENT = :FIELDS_STATEMENT||','||ASCII_CHAR(10)||' '||:FIELD;
- END
- END
- FIELDS_STATEMENT = :FIELDS_STATEMENT||')'||ASCII_CHAR(10)||'AS';
- FULL_SQL = :CREATE_STATEMENT||:FIELDS_STATEMENT||:TEXTO;
- EXECUTE STATEMENT FULL_SQL;
- END
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement