oracle form builder 碰到的权限问题FRM-40509

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle form builder 碰到的权限问题FRM-40509相关的知识,希望对你有一定的参考价值。

是这样,我在电脑上安装了oracle 10g企业版,安装了oracle dev 用system权限进pl/sql dev建了个表,在form里建了个块,画布什么的,把这个表放到画布里,运行,结果现在界面是出来了,但是只能查询,不能插入数据和修改数据呢,这是为何?我看了块里面的属性都是 允许删除,允许更新的,项里面也都是如此,为何会这样报错呢 form里也是用system登陆的 。
用sys或者sysdba登陆form builder 不能成功, 报错是 ORA-01017:invalid username/password;logon denied 我用的密码就是用安装时候设置的那个密码,而且我用这个密码 用在pl/sql dev上连接 用sysdba的用户名都是可以连接的,这个是什么原因? 难道是我安装的时候出了什么问题?因为报错是说权限不够,不知道怎么解决才好!我还是初学 请高手帮忙啊,能够解答再追加高分!

由于我是初学,后来我找了很久这个问题怎么解决,中间还有个dbserver因为不能启动导致OEM不能启动的问题也花了我些时间,后来才知道用OEM来管理,但是我现在又不能用DBA身份登陆OEM,这怎么办?当时安装oracle 10g的时候,就是提示了一下要输入密码,我就输入了一个,后来用这个密码能用system连接,但是sysdba不能用这个密码,这个是为什么?我除了那个密码就没设置别的密码了啊!

ORACLE的几个默认用户名和密码
scott 密码是 tiger
sys 密码是 change_on_install
system 密码是 manager
sysman 密码是 oem_temp

另外sysdba只是一个角色,是没有密码的。其中直接管理模式可以为sysdba的为后面三个,要是集群的话再去掉system。
试试这几个密码登陆看看吧
参考技术A 权限不够用sys用户试试 参考技术B 是用sys用户as sysdba登陆看一下

PL/SQL 和 Oracle Forms Builder

【中文标题】PL/SQL 和 Oracle Forms Builder【英文标题】:PL/SQL and Oracle Forms Builder 【发布时间】:2013-07-26 01:31:16 【问题描述】:

所以我需要把这个项目放在一起上学,但我只能使用 oracle forms builder。

我正在尝试做一个简单的查询,并根据我从查询中得到的内容为表单对象分配值,但我的表单项出现时未声明。有谁知道我可以如何修改这样的表单属性?这个程序的用户界面很糟糕,所以如果我能在 PL/SQL 中实现的话,我真的很想避免通过向导来完成。

这是我所拥有的: 仍在努力寻找可行的解决方案。

我稍微修改了我的代码:

DECLARE
    pmrn patient.p_mrn%TYPE;
    var_ptuple patient%ROWTYPE;
BEGIN
    pmrn := NAME_IN('MRN_FIELD');
    SELECT * INTO var_ptuple from patient WHERE patient.p_mrn = pmrn;
    :PATIENT_BLOCK.FNAME := var_ptuple.p_fname;
    :PATIENT_BLOCK.LNAME := var_ptuple.p_lname;
END;

在数据块上使用 where 并不真正适合这些目的,因为我想根据用户输入检索数据。 IE。用户需要输入正确的用户 ID 才能查看他们的记录。

【问题讨论】:

【参考方案1】:

表单项在Forms PL/SQL中可以称为绑定变量,例如

pmrn := :PATIENT_BLOCK.MRN_FIELD;
:PATIENT_BLOCK.FNAME := var_ptuple.p_fname;

等等

但是请注意,您很可能不需要编写所有这些代码。只需将块源设置为表并对其执行查询 - 表单将负责为您加载记录。

【讨论】:

那么我可以写一个这样的查询吗? select p_fname, plname from patient where patient.p_mrn = :PATIENT_BLOCK.MRN_FIELD 我试图禁止访问用户没有必要信息(如 ID 号和密码等)的记录。似乎基于 GUI 的设置不提供这些功能。 GUI 正是您用来进行布局的工具。 Forms 的功能非常强大,并且由对象属性释放出来。有时您确实必须编写一些 PL/SQL,但对于这类事情,这不是必需的。例如,如果您想确保用户只看到某些记录,您可以在块的DEFAULT_WHERE 属性中放置一个谓词(如果子句应该是动态的,您甚至可以通过编程方式设置它)。 我已经稍微更改了我的代码,但我仍然不清楚如何访问表单对象并将数据放入其中和/或从中检索数据。如果我能做到这一点,我应该可以接受这个项目。语法对于您的建议是正确的,但是运行表单并没有按照我的预期执行。具体来说,它什么也没做。我希望用户能够将他们的 ID 输入到“MRN_FIELD”中,获取表单中的值,将其用于数据库查询,然后从记录中获取信息并将其放入表单中以供输出。 没关系!不管是什么不喜欢我使用的是 ENTER KEY PRESSED 触发器。我只是把它绑在一个按钮上,它就像一个魅力。非常感谢! 是的,避免使用“键”触发器——它们仅在您需要特定键盘键发生特定事情时才有用。最好将触发器挂在通用事件上,例如“WHEN-NEW-FORM-INSTANCE”(在第一次打开表单时运行某些东西)或“WHEN-BUTTON-PRESSED”(在按下按钮时运行某些东西 -无论如何按下它,例如鼠标或键盘)

以上是关于oracle form builder 碰到的权限问题FRM-40509的主要内容,如果未能解决你的问题,请参考以下文章

Oracle Forms Builder:无法执行查询

Oracle Form Builder:CREATE_GROUP Built-in

PL/SQL 和 Oracle Forms Builder

oracle forms builder pl/sql - 访问从其他列派生的列

使用复选框在父表中搜索 (Oracle Forms Builder)

刚接触ORACLE FORM BUILDER ,请教一个基本的问题,新建了一个堆叠画布,怎么把它显示在主画布上。