Archive for 2006

Use :NULL in Bind Variables

Posted by Zeeno on December 7th, 2006 filed in Oracle

在EBS中,我们可以使用:$FLEX$来获取其他值集的值,但是前提是所引用的值集必须已经选择某个值。倘若这个引用的值集有时候不需要被选择,那么该如何做呢?
在Flexfields手册中提到一个非常有趣的内容 :NULL。这用于:$FLEX$.Value_Set_Name为空时。如:
… …
where project_id = nvl(:$FLEX$.Project_Id:NULL,project_id)
语法:
:block.field:NULL
:$PROFILES$.Option_Name:NULL
:$FLEX$.Value_Set_Name:NULL

Read More..>>

限制Listener的网络链接

Posted by Zeeno on November 23rd, 2006 filed in Oracle

通过在sqlnet.ora设置简单参数来限制未经授权的链接。
TCP.VALIDNODE_CHECKING = yes
TCP.INVITED_NODES = (client1,client2,client3,dbnode)
tcp.validnode_checking 表示需要检查node授权。
tcp.invited_nodes 表示经过授权的node,必须包含db所在的node。sqlnet.ora 中总共有4个相关的参数:
tcp.validnode_checking
tcp.invited_nodes
tcp.excluded_nodes
需要排除的未经授权的node
tcp.nodelay
修改TCP/IP的包传送方式,关闭nagle算法。
具体参考RFC896: http://www.faqs.org/rfcs/rfc896.html
附上sqlnet.ora的参数列表:
bequeath_detach
disable_oob
log_directory_client
log_directory_server
log_file_client
log_file_server
names.connect_timeout
names.dce.prefix
names.default_domain
names.directory_path
names.initial_retry_timeout
names.max_open_connections
names.message_pool_start_size
names.nis.meta_map
names.preferred_servers
names.request_retries
namesctl.echo
namesctl.internal_encrypt_password
namesctl.internal_use
namesctl.no_initial_server
namesctl.noconfirm
namesctl.server_password
namesctl.trace_directory
namesctl.trace_file
namesctl.trace_level
namesctl.trace_unique
sqlnet.authentication_gssapi_service
sqlnet.authentication_kerberos5_service
sqlnet.authentication_services
sqlnet.client_registration
sqlnet.crypto_checksum_client
sqlnet.crypto_checksum_server
sqlnet.crypto_checksum_type_client
sqlnet.crypto_checksum_type_server
sqlnet.crypto_seed
sqlnet.encryption_client
sqlnet.encryption_server
sqlnet.encryption_types_client
sqlnet.encryption_types_server
sqlnet.expire_time
sqlnet.kerberos5_cc_name
sqlnet.kerberos5_clockskew
sqlnet.kerberos5_conf
sqlnet.kerberos5_keytab
sqlnet.kerberos5_realms
sqlnet.radius_alternate
sqlnet.radius_alternate_port
sqlnet.radius_alternate_retries
sqlnet.radius_authentication
sqlnet.radius_authentication_interface
sqlnet.radius_authentication_port
sqlnet.radius_authentication_retries
sqlnet.radius_authentication_timeout
sqlnet.radius_challenge_response
sqlnet.radius_secret
sqlnet.radius_send_accounting
ssl_cipher_suites
ssl_client_authentication
ssl_server_dn_match
ssl_version
tcp.excluded_nodes
tcp.invited_nodes
tcp.nodelay
tcp.validnode_checking
tnsping.trace_directory
tnsping.trace_level
trace_directory_client
trace_directory_server
trace_file_client
trace_file_server
trace_filelen_client
trace_filelen_server
trace_fileno_client
trace_fileno_server
trace_level_client
trace_level_server
trace_timestamp_client
trace_timestamp_server
trace_unique_client
use_cman
use_dedicated_server
WALLET_LOCATION

Read More..>>

ORA-00904

Posted by Zeeno on November 22nd, 2006 filed in Oracle

程序中有一个字段需要限制一下条件,但又不需要传入变量,不料遭遇了这个错误:
ERRORMSG: ORA-00904: “APPROVED”: invalid identifier
我是这样解决的:

EXECUTE IMMEDIATE ‘
SELECT SUM(REQ_LINE_QUANTITY)
FROM PO_REQ_DISTRIBUTIONS_INQ_V
WHERE AUTHORIZATION_STATUS = :APPROVED
AND ORG_ID = :P_ORG_ID
AND PROJECT_ID = :P_PROJ_ID
AND ITEM_ID = :P_ITEM_ID’
INTO V_QTY
USING ‘ APPROVED ‘, P_ORG_ID, P_PROJ_ID, P_ITEM_ID;

Read More..>>

折花且为乐

Posted by Zeeno on November 21st, 2006 filed in Writing

早上醒来,突然回忆起大学时代的一段插曲,有感:

折花且为乐,
把酒聊作苦。
年少不知事,
自食荒唐果。

又想到一年前从陈青那借来的《诗词韵律》都还没怎么翻过呢……

Read More..>>

Execute Immediate

Posted by Zeeno on November 20th, 2006 filed in Oracle

今天诊断了一起 ORA-00905 故障,起因由PL/SQL程序中的一段execute immediate代码引起的。
先看一下execute immediate的语法:
execute immediate ’sql’;
execute immediate ’sql_select’ into var_1, var_2;
execute immediate ’sql’ using [in|out|in out] bind_var_1, [in|out|in out] bind_var_2;
execute immediate ’sql_select’ into var_1, var_2 using [in|out|in out] bind_var_1, [in|out|in out] bind_var_2;
execute immediate ’sql’ returning into var_1;
execute immediate ’sql’ bulk collect into indexed_var;
在SQL*Plus中测试:
SQL> var myvar number;
SQL> print myvar
MYVAR
———
SQL> begin
2 execute immediate ’select count(*) […]

Read More..>>