[ת] proc oracle Á¬½ÓÊͷŲ»Á˵ÄÎÊÌâ
ת×Ô£ºhttp://www.91linux.com/html/article/database/oracle/20081205/14333.html
proc oracle Á¬½ÓÊͷŲ»Á˵ÄÎÊÌâ
±ÊÕß¹«Ë¾µÄÓ¦ÓÃϵͳÿ¸ôÒ»¶Îʱ¼ä£¬oracleÁ¬½Ó¾Í´ïµ½ÉÏÏÞÁË£»»³ÒÉÊÇÓ¦ÓÃûÓÐÕýÈ·µÄÊÍ·ÅoracleÁ¬½Ó£»ËµÀ´²ÑÀ¢£¬proc¶Ï¶ÏÐøÐøµÄÓÃÁ˼¸Ä꣬¿É
ÄÜÊÇÒÔǰ¹«Ë¾µÄ´úÂëдµÃÌ«ºÃÁË£¬´ÓûÓÐÈ¥¹ØÐÄ»ù±¾µÄprocÁ¬½Ó¡¢ÊÍ·ÅÊÇÔõô´¦ÀíµÄ£¬ÕâÎÊÌâ±ÆµÃÎÒµÃÈ¥ÊìϤÕâ·½ÃæµÄ¶«Î÷ÁË£»ÅªÁËÁ½Ìì²ÅÕÒµ½ÎÊÌâµÄ¸ùÔ´£¬Æä
Öдó°ëʱ¼äÊÇÊìϤÔϵͳµÄ´úÂë¡¢¶¨Î»ÎÊÌ⣬ÆäËûʱ¼äÊÇÕÒÍøÉϵÄ×ÊÁÏ¿´¡¢×öÏà¹ØµÄ²âÊÔ£»
¾¹ý·ÖÎö£¬½«ÎÊÌⶨλÔÚÁËÊý¾Ý¿â´ò¿ª¡¢¹Ø±ÕµÄÏà¹Øº¯Êý£»ºǫ́c++Ó¦Óõĸù±¾Ã»Óгɹ¦µÄÊÍ·Åoracle Á¬½Ó£¬Êý¾Ý¿â²Ù×÷º¯ÊýÈçÏ£º
sql_context db_open(const char* usr, const char* pwd)
{
EXEC SQL BEGIN DECLARE SECTION;
sql_context ctx;
char username[64];
char passwd[64];
EXEC SQL END DECLARE SECTION;
struct sqlca sqlca;
EXEC SQL ENABLE THREADS;
EXEC SQL CONTEXT ALLOCATE :ctx;
EXEC SQL CONTEXT USE :ctx;
strcpy(username,usr);
strcpy(passwd,pwd);
EXEC SQL CONNECT :username IDENTIFIED BY :passwd;
if (sqlca.sqlcode)
{
printf( "Á¬½ÓoracleÊý¾Ý¿âʧ°Ü!");
return NULL;
}
return ctx;
}
int db_close(sql_context ctx)
{
struct sqlca sqlca;
EXEC SQL CONTEXT FREE :ctx;
if( SQLCODE != 0 )
{
printf( "¶Ï¿ªÊý¾Ý¿âÁ¬½Óʧ°Ü!%d:%s\n",SQLCODE,sqlca.sqlerrm.sqlerrmc );
return -1;
}
return 0;
}
¾¹ý²âÊÔ£¬·¢ÏÖÒÔÉÏdb_close¸ù±¾Ã»ÓÐÊÍ·ÅÊý¾Ý¿âÁ¬½Ó£»¾¹ýºÍÍøÉÏʾ·¶³ÌÐòµÄ¶Ô±È£¬ÖÕÓÚ·¢ÏÖÁËÎÊÌ⣺
Ô
À´oracle µÄsql context£¬ÐèÒª releaseÖ®ºó£¬²ÅÄÜÕýÈ·ÊÍ·ÅÊý¾Ý¿âÁ¬½Ó£»Èç¹û²»×örelease£¬free
context²»»á±¨ÈκδíÎ󣨼´db_closeÖв¢²»·µ»Ø-1£©£¬µ«ÊÇÊý¾Ý¿âÁ¬½ÓÈ´²»»áÊÍ·Å£¨¶ÔoracleµÄÕâ¸ö´¦Àí»úÖÆ£¬º¹Ò»¸ö-_-|||£¬»ò
Õß˵Ã÷ÎÒµÄproc±È½ÏÈõ°É£¬¿ÉÄÜ»¹ÓбðµÄ½â¾ö°ì·¨£©£»
°Ñdb_close¸Ä³ÉÈçÏ£¬ÎÊÌâ½â¾ö£º
int db_close(sql_context ctx)
{
struct sqlca sqlca;
EXEC SQL CONTEXT USE :ctx;
EXEC SQL COMMIT WORK RELEASE;
EXEC SQL CONTEXT FREE :ctx;
if( SQLCODE != 0 )
{
printf( "¶Ï¿ªÊý¾Ý¿âÁ¬½Óʧ°Ü!%d:%s\n",SQLCODE,sqlca.sqlerrm.sqlerrmc );
return -1;
}
return 0;
}
×¢Òâ
Ïà¹ØÎĵµ£º
ËäȻѧϰJavaºÜ¾ÃÁË£¬×Ô¼ºÒ²Á¬½Ó¹ýһЩÊý¾Ý¿â£¬±ÈÈçmysqlÖ®ÀàµÄ£¬Èç½ñÄØ£¬Ò²Ñ§Ï°ÁËÒ»¶Îʱ¼äµÄOracle£¬È»¶øÄØ£¬½ñÌìÊÇÎÒµÚÒ»´ÎÁ¬½ÓOracle£¬ºÙºÙ£¬Ó¦¸Ã»¹²»ËãÌ«³Ù°É¡£
½ñÌìÄØ£¬Óе㱿׾£¬´ó¼ÒĪЦ£¡
ÎÒÕâÊÇÒ»¸ö²éѯÀý×Ó
Ê×ÏÈ£¬Ô ......
ǰÌì×°ºÃµÄ£Ï£ò£á£ã£ì£å£¬×òÌìͻȻ²»ºÃÓÃÁË£¬´ÓOracleµÄ´íÎóÌáʾÀ´¿´,ÊÇ˵TNS:no listener £¬¹À¼ÆÊÇijÖÖ·þÎñûÓÐÆô¶¯£¬´ò¿ªwindows¹ÜÀí¹¤¾ß->·þÎñ£¬Ò»¿´£¬ÓÐÒ»¸öOracleOraHome90TNSListenerÕâÑùµÄ·þÎñ£¬ºÍ´íÎóÐÅÏ¢ÌâÊÇÒ»Ö£¬»ù±¾¾Í¿ÉÒԿ϶¨ÊÇÕâ¸ö·þÎñËùÒý·¢µÄÎÊÌâ¡£ÔÙÒ»¿´£¬¸Ã·þÎñûÓÐÆô¶¯£¬ËìÊÖ¹¤Æô¶¯£¬Ë¢ÐºóÒ»¿´£¬¸Ã· ......
Oracle Enterprise Manager Oracle EMÊÇÓû§°²×°Oracle£¬´´½¨ÁËÊý¾Ý¿â²¢ÅäÖúÃÍøÂç×ÊÔ´ºó£¬Oracle¸½´ø°²×°µÄÒ»¸öÊý¾Ý¿â¹ÜÀíÈí¼þ¡£Í¬Ê±£¬EMÒ²Ìṩ¶ÔÐÔÄܵ÷ÊÔÓаïÖúµÄ¹¤¾ß£¬ÈçSQL*LoaderºÍRecovery Manager £¨RMAN£©µÈ¡£ Oracle Diagnostics Pack (ODP) ODPÓ¦¸ÃËãÊÇOracleÊý¾Ý¿â»·¾³ÐÔÄܵ÷ÊÔµÄ×îÖ÷ÒªºÍ×îÓÐЧµÄ¹¤¾ß£¬ËüÌá¹ ......
--´´½¨´¥·¢Æ÷£¨Ðм¶´¥·¢Æ÷£©
create or replace trigger tri_update_emp_bak
after update
on emp_bak
for each row --ÿ¸üÐÂÒ»ÐÐ ¾Í´¥·¢Ò»´Î
begin
--oracle ÀïÃæ ¶Ô´¥·¢Æ÷ Ò²ÌṩÁËÌØÊâµÄ¶ÔÏó :NEW :OLD À´·ÃÎÊ ¸üÐÂǰºóµÄÊý¾Ý
dbms_output.put_line('¸üкó' || :NEW.sal);
dbms_outpu ......