<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>Code.TechInterviews.com</title>
	<atom:link href="http://code.techinterviews.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://code.techinterviews.com</link>
	<description>ready-to-eat, hot-off-the-presses source code for your visual and intellectual pleasure</description>
	<pubDate>Fri, 16 Jan 2009 15:41:44 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Oracle: eval function</title>
		<link>http://code.techinterviews.com/?p=141</link>
		<comments>http://code.techinterviews.com/?p=141#comments</comments>
		<pubDate>Thu, 15 Jan 2009 01:05:31 +0000</pubDate>
		<dc:creator>checkthis</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[parameter]]></category>

		<guid isPermaLink="false">http://code.techinterviews.com/?p=141</guid>
		<description><![CDATA[
create or replace function eval (expr varchar2) return varchar2
as
  ret varchar2(4000);
begin
  execute immediate 'begin :result := ' &#124;&#124; expr &#124;&#124; '; end;' using out ret;
  return ret;
end;
/

The discussion and examples could be found there
]]></description>
			<content:encoded><![CDATA[<p><code lang="oracle8"><br />
create or replace function eval (expr varchar2) return varchar2<br />
as<br />
  ret varchar2(4000);<br />
begin<br />
  execute immediate 'begin :result := ' || expr || '; end;' using out ret;<br />
  return ret;<br />
end;<br />
/<br />
</code></p>
<p>The discussion and examples could be found <a href="http://www.adp-gmbh.ch/blog/2005/may/5.html">there</a></p>
]]></content:encoded>
			<wfw:commentRss>http://code.techinterviews.com/?feed=rss2&amp;p=141</wfw:commentRss>
		</item>
		<item>
		<title>Oracle: list of the system events</title>
		<link>http://code.techinterviews.com/?p=138</link>
		<comments>http://code.techinterviews.com/?p=138#comments</comments>
		<pubDate>Tue, 04 Nov 2008 05:07:55 +0000</pubDate>
		<dc:creator>checkthis</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[internal]]></category>

		<guid isPermaLink="false">http://code.techinterviews.com/?p=138</guid>
		<description><![CDATA[
set serveroutput on
 declare
  event_level number;
 begin
  dbms_output.enable(20000) ;
  for i in 10000..33999 loop
     sys.dbms_system.read_ev(i,event_level);
     if (event_level > 0) then
        dbms_output.put_line('Event '&#124;&#124;to_char(i)&#124;&#124;' set at level '&#124;&#124;
            [...]]]></description>
			<content:encoded><![CDATA[<p><code lang="oracle8"><br />
set serveroutput on<br />
 declare<br />
  event_level number;<br />
 begin<br />
  dbms_output.enable(20000) ;<br />
  for i in 10000..33999 loop<br />
     sys.dbms_system.read_ev(i,event_level);<br />
     if (event_level > 0) then<br />
        dbms_output.put_line('Event '||to_char(i)||' set at level '||<br />
                             to_char(event_level));<br />
     end if;<br />
  end loop;<br />
end;<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://code.techinterviews.com/?feed=rss2&amp;p=138</wfw:commentRss>
		</item>
		<item>
		<title>Oracle: list of the running transactions</title>
		<link>http://code.techinterviews.com/?p=134</link>
		<comments>http://code.techinterviews.com/?p=134#comments</comments>
		<pubDate>Sun, 12 Oct 2008 05:55:27 +0000</pubDate>
		<dc:creator>checkthis</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[transaction]]></category>

		<guid isPermaLink="false">http://code.techinterviews.com/?p=134</guid>
		<description><![CDATA[
SELECT a.sid, a.status, a.username, b.xidusn, b.used_urec, b.used_ublk, b.START_TIME
FROM v$session a, v$transaction b
WHERE a.saddr = b.ses_addr
order by START_TIME desc;

]]></description>
			<content:encoded><![CDATA[<p><code lang="oracle8"><br />
SELECT a.sid, a.status, a.username, b.xidusn, b.used_urec, b.used_ublk, b.START_TIME<br />
FROM v$session a, v$transaction b<br />
WHERE a.saddr = b.ses_addr<br />
order by START_TIME desc;<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://code.techinterviews.com/?feed=rss2&amp;p=134</wfw:commentRss>
		</item>
		<item>
		<title>Oracle: sql types</title>
		<link>http://code.techinterviews.com/?p=132</link>
		<comments>http://code.techinterviews.com/?p=132#comments</comments>
		<pubDate>Sat, 11 Oct 2008 00:21:46 +0000</pubDate>
		<dc:creator>checkthis</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[internal]]></category>

		<guid isPermaLink="false">http://code.techinterviews.com/?p=132</guid>
		<description><![CDATA[Here is the list of the Oracle SQL types and their internal codes:

SELECT t.typecode,o.name
FROM sys.type$ t, sys.obj$ o
WHERE
BITAND (t.properties, 16) = 16
AND t.toid = o.oid$
ORDER BY t.typecode

]]></description>
			<content:encoded><![CDATA[<p>Here is the list of the Oracle SQL types and their internal codes:</p>
<p><code lang="oracle8"><br />
SELECT t.typecode,o.name<br />
FROM sys.type$ t, sys.obj$ o<br />
WHERE<br />
BITAND (t.properties, 16) = 16<br />
AND t.toid = o.oid$<br />
ORDER BY t.typecode<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://code.techinterviews.com/?feed=rss2&amp;p=132</wfw:commentRss>
		</item>
		<item>
		<title>Oracle: wait statisics by block class</title>
		<link>http://code.techinterviews.com/?p=129</link>
		<comments>http://code.techinterviews.com/?p=129#comments</comments>
		<pubDate>Tue, 07 Oct 2008 00:33:38 +0000</pubDate>
		<dc:creator>checkthis</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://code.techinterviews.com/?p=129</guid>
		<description><![CDATA[
SELECT
  inst_id,
  DECODE (indx,
    1,'data block',
    2,'sort block',
    3,'save undo block',
    4,'segment header',
    5,'save undo header',
    6,'free list',
    7,'extent map',
    8,'1st level bmb',
    9,'2nd level bmb',
 [...]]]></description>
			<content:encoded><![CDATA[<p><code lang="oracle8"><br />
SELECT<br />
  inst_id,<br />
  DECODE (indx,<br />
    1,'data block',<br />
    2,'sort block',<br />
    3,'save undo block',<br />
    4,'segment header',<br />
    5,'save undo header',<br />
    6,'free list',<br />
    7,'extent map',<br />
    8,'1st level bmb',<br />
    9,'2nd level bmb',<br />
    10,'3rd level bmb',<br />
    11,'bitmap block',<br />
    12,'bitmap index block',<br />
    13,'file header block',<br />
    14,'unused',<br />
    15,'system undo header',<br />
    16,'system undo block',<br />
    17,'undo header',<br />
    18,'undo block'<br />
  ),  count,  time<br />
FROM x$kcbwait<br />
WHERE indx != 0;<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://code.techinterviews.com/?feed=rss2&amp;p=129</wfw:commentRss>
		</item>
		<item>
		<title>Using the clipboard in WSH</title>
		<link>http://code.techinterviews.com/?p=122</link>
		<comments>http://code.techinterviews.com/?p=122#comments</comments>
		<pubDate>Fri, 25 Jul 2008 13:22:57 +0000</pubDate>
		<dc:creator>checkthis</dc:creator>
		
		<category><![CDATA[Windows scripts]]></category>

		<category><![CDATA[clipboard]]></category>

		<category><![CDATA[copy]]></category>

		<guid isPermaLink="false">http://code.techinterviews.com/using-the-clipboard-in-wsh/122</guid>
		<description><![CDATA[How to get the text from the clipboard

set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate("about:blank")
textFromClipboard = objIE.document.parentwindow.clipboardData.GetData("text")
objIE.Quit
WScript.Echo textFromClipboard

How to put the text into clipboard

textIntoClipboard = "Some text" &#038; VbCrLf &#038; "Some more text"
Set objIE = WScript.CreateObject("InternetExplorer.Application")
objIE.Navigate "about:blank"
Do Until objIE.ReadyState = 4
	WScript.Sleep 100
Loop
objIE.document.ParentWindow.ClipboardData.SetData "text", textIntoClipboard
objIE.Quit

The detailed explanation could be found here.
]]></description>
			<content:encoded><![CDATA[<p><strong>How to get the text from the clipboard</strong></p>
<p><code lang="vb"><br />
set objIE = CreateObject("InternetExplorer.Application")<br />
objIE.Navigate("about:blank")<br />
textFromClipboard = objIE.document.parentwindow.clipboardData.GetData("text")<br />
objIE.Quit<br />
WScript.Echo textFromClipboard<br />
</code></p>
<p><strong>How to put the text into clipboard</strong></p>
<p><code lang="vb"><br />
textIntoClipboard = "Some text" &#038; VbCrLf &#038; "Some more text"</p>
<p>Set objIE = WScript.CreateObject("InternetExplorer.Application")<br />
objIE.Navigate "about:blank"<br />
Do Until objIE.ReadyState = 4<br />
	WScript.Sleep 100<br />
Loop</p>
<p>objIE.document.ParentWindow.ClipboardData.SetData "text", textIntoClipboard<br />
objIE.Quit<br />
</code></p>
<p>The detailed explanation could be <a href="http://www.nilpo.com/2007/08/windows-xp/scripting-the-clipboard-contents-in-wsh/">found here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://code.techinterviews.com/?feed=rss2&amp;p=122</wfw:commentRss>
		</item>
		<item>
		<title>Oracle: check the existance of logon/logoff triggers</title>
		<link>http://code.techinterviews.com/?p=121</link>
		<comments>http://code.techinterviews.com/?p=121#comments</comments>
		<pubDate>Fri, 25 Jul 2008 13:15:47 +0000</pubDate>
		<dc:creator>checkthis</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[login]]></category>

		<category><![CDATA[trigger]]></category>

		<guid isPermaLink="false">http://code.techinterviews.com/oracle-check-the-existance-of-logonlogoff-triggers/121</guid>
		<description><![CDATA[
select decode((count(trigger_name)),0,'LOGON trigger missing', 'Number of logon triggers: ' &#124;&#124; count(trigger_name) ) "INFO"
from sys.dba_triggers
where TRIGGERING_EVENT like 'LOGON%' and status='ENABLED' and owner='SYS'
union
select decode((count(trigger_name)),0,'LOGOFF trigger missing','', 'Number of logoff triggers:' &#124;&#124; count(trigger_name)) "INFO"
from sys.dba_triggers
where TRIGGERING_EVENT like 'LOGOFF%' and status='ENABLED' and owner='SYS'

The field TRIGGERING_EVENT could have the spaces at the end! Very clever...
]]></description>
			<content:encoded><![CDATA[<p><code lang="oracle8"><br />
select decode((count(trigger_name)),0,'LOGON trigger missing', 'Number of logon triggers: ' || count(trigger_name) ) "INFO"<br />
from sys.dba_triggers<br />
where TRIGGERING_EVENT like 'LOGON%' and status='ENABLED' and owner='SYS'<br />
union<br />
select decode((count(trigger_name)),0,'LOGOFF trigger missing','', 'Number of logoff triggers:' || count(trigger_name)) "INFO"<br />
from sys.dba_triggers<br />
where TRIGGERING_EVENT like 'LOGOFF%' and status='ENABLED' and owner='SYS'<br />
</code></p>
<p>The field TRIGGERING_EVENT could have the spaces at the end! Very clever...</p>
]]></content:encoded>
			<wfw:commentRss>http://code.techinterviews.com/?feed=rss2&amp;p=121</wfw:commentRss>
		</item>
		<item>
		<title>Unix shell: workaround for loop problem</title>
		<link>http://code.techinterviews.com/?p=120</link>
		<comments>http://code.techinterviews.com/?p=120#comments</comments>
		<pubDate>Fri, 11 Jul 2008 13:08:52 +0000</pubDate>
		<dc:creator>checkthis</dc:creator>
		
		<category><![CDATA[Unix Shell]]></category>

		<guid isPermaLink="false">http://code.techinterviews.com/bash-workaround-for-loop-problem/120</guid>
		<description><![CDATA[It's not possible to get the value of the loop variables in some versions of ksh.
Example:

#!/bin/ksh
num=0
cat $0 &#124; while read line ; do
 let num=num+1
done
echo "Number=$num"

This script will return "Number=0" as the result.
Here is the workaround for the problem: You should change the redirection method for the input file.

#!/bin/ksh
l=0
while read line ; do
 let l=l+1
done [...]]]></description>
			<content:encoded><![CDATA[<p>It's not possible to get the value of the loop variables in some versions of ksh.</p>
<p>Example:<br />
<code lang="bash"><br />
#!/bin/ksh</p>
<p>num=0<br />
cat $0 | while read line ; do<br />
 let num=num+1<br />
done</p>
<p>echo "Number=$num"<br />
</code></p>
<p>This script will return "Number=0" as the result.</p>
<p>Here is the workaround for the problem: You should change the redirection method for the input file.<br />
<code lang="bash"><br />
#!/bin/ksh</p>
<p>l=0<br />
while read line ; do<br />
 let l=l+1<br />
done < $0</p>
<p>echo "Number=$l"<br />
</code><br />
The last script will return the correct result: "Number=9"</p>
]]></content:encoded>
			<wfw:commentRss>http://code.techinterviews.com/?feed=rss2&amp;p=120</wfw:commentRss>
		</item>
		<item>
		<title>JavaScript: edit web page in browser</title>
		<link>http://code.techinterviews.com/?p=119</link>
		<comments>http://code.techinterviews.com/?p=119#comments</comments>
		<pubDate>Fri, 11 Jul 2008 13:00:43 +0000</pubDate>
		<dc:creator>checkthis</dc:creator>
		
		<category><![CDATA[browser]]></category>

		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://code.techinterviews.com/javascript-edit-web-page-in-browser/119</guid>
		<description><![CDATA[Here is small bookmarklet, which allows to edit the web page for any site (ok, You could save the results on Your local machine only).

javascript:document.body.contentEditable='true'; document.designMode='on'; void 0

]]></description>
			<content:encoded><![CDATA[<p>Here is small bookmarklet, which allows to <strong>edit</strong> the web page for <strong>any</strong> site (ok, You could save the results on Your local machine only).</p>
<p><code lang="javascript"><br />
javascript:document.body.contentEditable='true'; document.designMode='on'; void 0<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://code.techinterviews.com/?feed=rss2&amp;p=119</wfw:commentRss>
		</item>
		<item>
		<title>Oracle: redo log switches by date</title>
		<link>http://code.techinterviews.com/?p=117</link>
		<comments>http://code.techinterviews.com/?p=117#comments</comments>
		<pubDate>Thu, 08 May 2008 08:51:27 +0000</pubDate>
		<dc:creator>checkthis</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://code.techinterviews.com/oracle-redo-log-switches-by-date/117</guid>
		<description><![CDATA[The following script help to find, how often the redo logs were switched.
It calculates the number by date and by hour.


SET LINESIZE 150
COLUMN day FORMAT A3
COLUMN Total FORMAT 99G990
COLUMN h00 FORMAT 999
COLUMN h01 FORMAT 999
COLUMN h02 FORMAT 999
COLUMN h03 FORMAT 999
COLUMN h04 FORMAT 999
COLUMN h05 FORMAT 999
COLUMN h06 FORMAT 999
COLUMN h07 FORMAT 999
COLUMN h08 FORMAT [...]]]></description>
			<content:encoded><![CDATA[<p>The following script help to find, how often the redo logs were switched.<br />
It calculates the number by date and by hour.</p>
<p><span id="more-117"></span><br />
<code lang="oracle8"><br />
SET LINESIZE 150<br />
COLUMN day FORMAT A3<br />
COLUMN Total FORMAT 99G990<br />
COLUMN h00 FORMAT 999<br />
COLUMN h01 FORMAT 999<br />
COLUMN h02 FORMAT 999<br />
COLUMN h03 FORMAT 999<br />
COLUMN h04 FORMAT 999<br />
COLUMN h05 FORMAT 999<br />
COLUMN h06 FORMAT 999<br />
COLUMN h07 FORMAT 999<br />
COLUMN h08 FORMAT 999<br />
COLUMN h09 FORMAT 999<br />
COLUMN h10 FORMAT 999<br />
COLUMN h11 FORMAT 999<br />
COLUMN h12 FORMAT 999<br />
COLUMN h13 FORMAT 999<br />
COLUMN h14 FORMAT 999<br />
COLUMN h15 FORMAT 999<br />
COLUMN h16 FORMAT 999<br />
COLUMN h17 FORMAT 999<br />
COLUMN h18 FORMAT 999<br />
COLUMN h19 FORMAT 999<br />
COLUMN h20 FORMAT 999<br />
COLUMN h21 FORMAT 999<br />
COLUMN h22 FORMAT 999<br />
COLUMN h23 FORMAT 999<br />
COLUMN h24 FORMAT 999<br />
BREAK ON REPORT<br />
COMPUTE MAX OF "Total" ON REPORT<br />
COMPUTE MAX OF "h00" ON REPORT<br />
COMPUTE MAX OF "h01" ON REPORT<br />
COMPUTE MAX OF "h02" ON REPORT<br />
COMPUTE MAX OF "h03" ON REPORT<br />
COMPUTE MAX OF "h04" ON REPORT<br />
COMPUTE MAX OF "h05" ON REPORT<br />
COMPUTE MAX OF "h06" ON REPORT<br />
COMPUTE MAX OF "h07" ON REPORT<br />
COMPUTE MAX OF "h08" ON REPORT<br />
COMPUTE MAX OF "h09" ON REPORT<br />
COMPUTE MAX OF "h10" ON REPORT<br />
COMPUTE MAX OF "h11" ON REPORT<br />
COMPUTE MAX OF "h12" ON REPORT<br />
COMPUTE MAX OF "h13" ON REPORT<br />
COMPUTE MAX OF "h14" ON REPORT<br />
COMPUTE MAX OF "h15" ON REPORT<br />
COMPUTE MAX OF "h16" ON REPORT<br />
COMPUTE MAX OF "h17" ON REPORT<br />
COMPUTE MAX OF "h18" ON REPORT<br />
COMPUTE MAX OF "h19" ON REPORT<br />
COMPUTE MAX OF "h20" ON REPORT<br />
COMPUTE MAX OF "h21" ON REPORT<br />
COMPUTE MAX OF "h22" ON REPORT<br />
COMPUTE MAX OF "h23" ON REPORT</p>
<p>SELECT  TRUNC(first_time) AS "Date",<br />
        TO_CHAR(first_time, 'Dy') AS "Day",<br />
        COUNT(1) AS "Total",<br />
        SUM(DECODE(TO_CHAR(first_time, 'HH24'),'00',1,0)) AS "h00",<br />
        SUM(DECODE(TO_CHAR(first_time, 'HH24'),'01',1,0)) AS "h01",<br />
        SUM(DECODE(TO_CHAR(first_time, 'HH24'),'02',1,0)) AS "h02",<br />
        SUM(DECODE(TO_CHAR(first_time, 'HH24'),'03',1,0)) AS "h03",<br />
        SUM(DECODE(TO_CHAR(first_time, 'HH24'),'04',1,0)) AS "h04",<br />
        SUM(DECODE(TO_CHAR(first_time, 'HH24'),'05',1,0)) AS "h05",<br />
        SUM(DECODE(TO_CHAR(first_time, 'HH24'),'06',1,0)) AS "h06",<br />
        SUM(DECODE(TO_CHAR(first_time, 'HH24'),'07',1,0)) AS "h07",<br />
        SUM(DECODE(TO_CHAR(first_time, 'HH24'),'08',1,0)) AS "h08",<br />
        SUM(DECODE(TO_CHAR(first_time, 'HH24'),'09',1,0)) AS "h09",<br />
        SUM(DECODE(TO_CHAR(first_time, 'HH24'),'10',1,0)) AS "h10",<br />
        SUM(DECODE(TO_CHAR(first_time, 'HH24'),'11',1,0)) AS "h11",<br />
        SUM(DECODE(TO_CHAR(first_time, 'HH24'),'12',1,0)) AS "h12",<br />
        SUM(DECODE(TO_CHAR(first_time, 'HH24'),'13',1,0)) AS "h13",<br />
        SUM(DECODE(TO_CHAR(first_time, 'HH24'),'14',1,0)) AS "h14",<br />
        SUM(DECODE(TO_CHAR(first_time, 'HH24'),'15',1,0)) AS "h15",<br />
        SUM(DECODE(TO_CHAR(first_time, 'HH24'),'16',1,0)) AS "h16",<br />
        SUM(DECODE(TO_CHAR(first_time, 'HH24'),'17',1,0)) AS "h17",<br />
        SUM(DECODE(TO_CHAR(first_time, 'HH24'),'18',1,0)) AS "h18",<br />
        SUM(DECODE(TO_CHAR(first_time, 'HH24'),'19',1,0)) AS "h19",<br />
        SUM(DECODE(TO_CHAR(first_time, 'HH24'),'20',1,0)) AS "h20",<br />
        SUM(DECODE(TO_CHAR(first_time, 'HH24'),'21',1,0)) AS "h21",<br />
        SUM(DECODE(TO_CHAR(first_time, 'HH24'),'22',1,0)) AS "h22",<br />
        SUM(DECODE(TO_CHAR(first_time, 'HH24'),'23',1,0)) AS "h23"<br />
FROM    V$log_history<br />
GROUP BY TRUNC(first_time), TO_CHAR(first_time, 'Dy')<br />
ORDER BY 1;<br />
CLEAR BREAKS<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://code.techinterviews.com/?feed=rss2&amp;p=117</wfw:commentRss>
		</item>
	</channel>
</rss>
