最近公司需要,开始学习oracle的forms,e文 的文档实在看的不爽,还好同事买了一本中文入门书籍,趁着周末学习了一下。
总的感觉这个东东比较简单,如果学习过图形化的开发工具,比如jbuilder之类,就能很快上手,不过昨天碰到个问题让我郁闷到了今天才解决,这里记录一下:
照着书上例子写了个控制块,里面有个输入框,一个按钮,输入框输入条件,点击按钮开始查询,下面显示查询结果,点击按钮的时候,触发一个when-button-pressed事件,里面需要我们写plsql程序。我那个sql完全照例子来写:
begin
set_block_property('TABLES_TEST',default_where,'table_name=||:CONTROL.table_name);
go_block('TABLES_TEST');
execute_query;
end;
结果点击按钮的时候,老报错frm-40505:oracle错误,不能执行查询,这个错误oracle错误无法查询,没有办法,最后安装了我们报警的触发器,才发现出错的真正原因:ORA-00904: "Z1": invalid identifier
语句是:SELECT ROWID,TABLE_NAME,TABLESPACE_NAME,CLUSTER_NAME,IOT_NAME,STATUS,PCT_FREE,PCT_USED FROM TABLES_TEST WHERE table_name=Z1?
也就是条件中的字符串没有加单引号。解决办法很简单,在plsql中增加了‘’后一切正常。