如何以编程方式从oracle窗体连接到数据库

如何以编程方式从oracle窗体连接到数据库,oracle,plsql,oracleforms,Oracle,Plsql,Oracleforms,我使用的是oracle forms 6i, 我想使用pl/sql代码以编程方式连接到数据库 我不希望最终用户在表单运行时插入用户名、密码和数据库名称,如下图所示: 我使用的预格式触发器如下所示: begin execute 'connect to hr/hr@yemensoft'; end; 但它返回错误 第2行第10列的错误103遇到符号“连接到hr”/hr@yemensoft“当需要下列选项之一时::=.(@%; 您必须使用登录内置过程: LOGON('hr', 'hr@y

我使用的是oracle forms 6i, 我想使用pl/sql代码以编程方式连接到数据库

我不希望最终用户在表单运行时插入用户名、密码和数据库名称,如下图所示:

我使用的预格式触发器如下所示:

begin
    execute 'connect to hr/hr@yemensoft';   
end;
但它返回错误


第2行第10列的错误103遇到符号“连接到hr”/hr@yemensoft“当需要下列选项之一时::=.(@%;


您必须使用
登录
内置过程:

LOGON('hr', 'hr@yemensoft');
内置登录

描述:使用指定的用户名和密码执行默认的Oracle Forms登录处理。如果要增强默认登录处理,请从登录时触发器调用此过程。 语法

PROCEDURE LOGON(username VARCHAR2, password VARCHAR2); 
PROCEDURE LOGON(username VARCHAR2, password VARCHAR2, logon_screen_on_error BOOLEAN);

方法是在您的
登录时
触发器中:

LOGON('hr', 'hr'||'@'||Get_Application_Property(CONNECT_STRING), false);
确保在
表单sweb.cfg
中添加类似的内容:

[your-conf-for-db-yemensoft]
...
...
userid=@yemensoft

返回的错误是..?第2行第10列的错误103遇到符号“连接到hr/hr@yemensoft当需要下列选项之一时::=.(@%;…..说明:
execute
用于运行
PL/SQL
connect
是SQL*加语法,而不是PL/SQL。