| 问题:有没有办法从个 SQL 脚本在 DCL 中保存符号?
回答有,但必须调用 VMS 运行时库函数来完成这项工作。这很简单,如下所示。
SQL> create procedure SET_SYMBOL
cont> in :symbol VARCHAR (255)
cont> by descriptor,
cont> in :value_string VARCHAR (255)
cont> by descriptor)
cont> language SQL;
cont> external
cont> name LIB$SET_SYMBOL
cont> location 'SYS$SHARE:LIBRTL.EXE'
cont> language GENERAL
cont> parameter style GENERAL
cont> comment is 'Create a DCL symbol
from SQL';
SQL>$
SQL> declare :my_value varchar (20);
SQL> begin set :my_value = 'Sample'; end;
SQL> begin call SET_SYMBOL ('MY_VALUE', :my_value); end;
SQL>
$ show symbol my_value
MY_VALUE = "Sample"
|