|
如何在你的Linux机器上安装运行Oracle
|
|
来源:www.unix5.com 作者:Uche Ogbuji 发布时间:2007-05-23
|
|
网络连接数据库的话,首先应该检查 端口号和SID是否正确,TNS listner是否正常(译注:lsnrctl status, 或者tnsping)。JDBC并不是开发 SQL数据库应用的唯一手段,ANSI标准SQLJ允许在JAVA程序中直接嵌入 SQL语句。Oracle for Linux 8.0.5 并没有捆绑SQLJ,但可以作为另一个独立产品获得。SQLJ是100%的 JAVA,应该在Linux上运行没有问题, 事实上SQLJ在底层使用的就是JDBC,因此可以同任何SQL数据库互联, 并不限于Oracle。
希望上面的这些例子能对您的编程有所帮助。可惜Oracle for Linux 的编程文档相当的少,要不就是隐藏得 十分深:) 也许在数据库编程得心应手之前,您得先啃它一两本书。
PL/SQL
对SQL的过程性语言扩展(PL/SQL)可能是Oracle最著名的特点。这种 强大的专业数据库管理语言允许您对 声明性的SQL加逻辑控制。一般,PL/SQL的存储过程(stored procedure) 用命令行的sqlplus,图形化的 Developer/2000(Linux上目前还没有)或其他工具开发,允许您从 Oracle众多的查询接口(Oracle Application Server, Python, Perl, JDBC 或者C)访问。
程序3:
create or replace package stored_sample as function get_annual_salary (emp_number in number) return number; end stored_sample; / create or replace package body stored_sample as function get_annual_salary (emp_number in number) return number is annual_salary number; monthly_salary number; begin select sal into monthly_salary from emp where empno = emp_number; annual_salary := monthly_salary * 24; return (annual_salary); end get_annual_salary; end stored_sample; /
上面的程序3是存储进程的一个小示范,它接受一个员工号,返回该员 工的年薪。相关的函数 get_annual_salary封装在PL/SQL包sample_package中。
如果把程序3拷贝到文件sample.sql,您可以通过sqlplus运行它,如下 所示:
[oracle@sforza demo]$ sqlplus
SQL*Plus: Release 8.0.5.0.0 - Production on Sun Mar 7 13:36:32 1999
(c) Copyright 1998 Oracle Corporation. All rights reserved.
Enter user-name: scott Enter password:
Connected to: Oracle8 Release 8.0.5.0.0 - Production PL/SQL Release 8.0.5.0.0 - Production
SQL> @sample Package created.
Package body created.
SQL> set serveroutput on SQL> exec dbms_output.put_line(stored_sample.get_annual_salary(7782)) 58800
PL/SQL procedure successfully completed.
SQL>
通过其他的编程接口,也可以使用这个PL/SQL包。Python/DCOracle中, 参见Connection对象的procedures成员 JDBC中,参见java.sql.CallableStatement。
Oracle有众多的内置函数。事实上,大多数您以前用外部代码完成的 功能都可以通过PL/SQL高效地完成。如果您需要什么比较通常的功能, 请参考PL/SQL手册,看您需要的函数是否已经实现了。如果您准备做 大量的Oracle编程的话,经常翻阅PL/SQL手册以熟悉各种函数是大有 好处的。
管理Oracle for Linux
如果您已经习惯运行相对不那么复杂的数据库,那么在Oracle中完成 一些日常操作,例如建立新数据库或者性能调谐会显得相当复杂。有 一些关键的配置文件需要维护,如init.ora, config.ora和 tnsnames.ora。 一般有好几种办法指定一些关键参数,如当前的SID。可以在上述的 文件中声明,也可以在环境变量中声明,或者是通过oracle工具的运 行参数。这种灵活性是值得赞赏的,可惜有时搞清那一种设置优先也 很伤脑筋。
同Linux一样,Oracle提供的安全机制如果管理不当,就形同虚设。 花时间熟悉各种访问规则和设置,以及各种特殊Oracle用户帐号的角 色,还是值得的。
Oracle的性能调谐是一个非常大,也非常专的话题。调谐得当,可以 很大程度地提高性能。Oracle运行和CPU、内存、外存的关系是相当 复杂的,这些因素必须考虑。另外,PL/SQL包,存储过程,临时表空 间,表结构本身,所有这些都会随着使用而日趋复杂,保证数据库的 结构优化,没有垃圾,绝对比定期从cron运行vacuum复杂得多。
Oracle DBA(database adminstrator,数据库管理员)是电脑专业人 员中一个著名的亚文化。这并不奇怪。Oracle的强大功能和灵活性, 也同时意味着多得让人发疯的各种小秘密、小技巧、小陷阱,这方面 的特点它绝不比任何人少--包括Linux在内。您在征服Linux时可能 已经发现,O'Reilly的动物园(译注:所有O'Reilly and Associate 出版的书都以动物作封面)是一个很好的去处。如果您需要在Oracle 上完成许多工作,找找黄封面的O'Reilly Oracle专辑。那里,你会 找到比Oracle拜占庭迷宫式文档好的多的信息来源。
Oracle for Linux vs. Oracle for NT
NT上的Oracle (译注:Oracle在NT上的销量超过了SQL SERVER,是NT
共4页: 上一页 [1] [2] 3 [4] 下一页
|
| |
|
|
如果您对本文有任何疑问或者建议,请到论坛讨论区发表您的意见: >> 论坛入口 |
[ 收藏]
[ 推荐]
[ 评论(0条)]
[返回顶部] [打印本页]
[关闭窗口] |
|
|
|