- 论坛徽章:
- 0
|
因為 我用模組化的方式 做一個 功能
但是因為 命令中一定會有 @ $ # 等 perl 內定功能
如果 類似
$module_Source[4]=
qq(
select count(*) from gv$session
);
$sqlA = qq{$module_Source[$module_Scount] };
$sth = $dbh->prepare( $sqlA );
我陣列裡面 gv$session 不想 讓 $ 或 ' " @ ..等有起做用 (因為 sql語法關係) 這樣子應該要如何使用
前提是不對命令做任何修改(加\@ \$..等) 因為 要去一個一個改 sql裡有關 ' " @ @ # 有時會有大bug
因為 我試過
=" "
=' '
=qq{ }
=qq( )
都有問題
$module_Source[2]=
qq(
select owner, tablespace_name "Tablespace", table_name "Table", num_rows, blocks, avg_row_len from dba_tables
where tablespace_name <> 'PATROL'
and owner not in ('SYS', 'SYSTEM') and num_rows <> 0
order by tablespace_name, table_name
);
這樣子是ok的
多謝指導與指教
是有用 別的方式解決 那個問題了 不過又發現用別的方式所產生的問題
XML::Simple 對 中文字 和 語法內 有 <> 很敏感 會出現
not well-formed (invalid token) at line 150, column 20, byte 5905 at C:/Perl/site/lib/XML/
Parser.pm line 187
原始用法是(用中文字)
<ROW>
<README_DOC>
Find Lock Status 狀態 <==這邊就是在line 150的地方
</README_DOC>
<COMMAND_RUN>
SELECT SID, DECODE(BLOCK, 0, 'NO', 'YES') BLOCKER,DECODE(REQUEST, 0, 'NO','YES' ) WAITER
FROM V$LOCK WHERE REQUEST > 0 OR BLOCK > 0
ORDER BY block DESC
</COMMAND_RUN>
</ROW>
用 <> 的方式
<ROW>
<COMMAND_RUN>
select owner, tablespace_name "Tablespace", table_name "Table", num_rows, blocks, avg_row_len from dba_tables
where tablespace_name <> 'PATROL' <===這裡
and owner not in ('SYS', 'SYSTEM') and num_rows <> 0 <===這裡
order by tablespace_name, table_name
</COMMAND_RUN>
</ROW>
[[i] 本帖最后由 ieting 于 2006-10-5 16:40 编辑 [/i]] |
|