November 12, 2008
利用 Oracle 和 PHP 轻松处理树
"作者:Nick Bollweg利用一流的查询和函数,轻松处理层次数据。本文相关下载:\n示例代码和清单\nOracle 数据库 10 g Express 版\nOracle 即时客户端\n为 PHP 提供的 Oracle JDeveloper 扩展2005 年 12 月发表\n几乎每一种数据驱动的应用程序都依赖于某种形式的、不同复杂程度的层次数据:产品类别中的产品、文件夹中的消息、部门中的员工。当然,某些时候您将需要显示这些数据来创建一个目录、收件箱或组织架构的图表。利用 Oracle 提供的特定供应商的 SQL 扩展和 PHP 在数组处理方面的出色能力,您可以检索并显示一个树,并且以简洁和易于维护的方式对树进行内在的高度优化。\n因为本文讨论的查询和函数都包含较少的过程,而注重提供更条理清晰,易于理解的代码,因此这篇方法文档在实施的时候以及重构现有代码的时候非常有用。如果您的数据拥有树状的数据形式(目前已经显示或者要取其值),那么本方法文档将会很有价值。使用最新推出的优秀 RDBMS 的用户非常幸运,因为新的特性使得一些棘手的处理层次数据的任务变得更为容易 — 虽然自 Oracle8_i_ 起的 …"
November 12, 2008
Oracle+PHP 简明手册
"http://www.oracle.com/technology/global/cn/pub/articles/oracle_php_cookbook/index.html"
November 12, 2008
oracle添加用户,赋权,修改密码,解锁
"添加用户(随着用户的创建,自动产生与用户同名的schema) CREATE USER “TESTER” PROFILE “DEFAULT” IDENTIFIED BY “TESTER” DEFAULT TABLESPACE “TESTDATA” TEMPORARY TABLESPACE “TESTTEMP” ACCOUNT UNLOCK;\n赋权(说实话,这些权限是开发中使用的权限,如果用户生产环境,请自行对于用户创建相应的系统权限) 据说生产环境下,只是connect resource这样的角色就可以了。 GRANT “CONNECT” TO “TESTER”; GRANT “RESOURCE” TO “TESTER”; GRANT “DBA” TO “TESTER”; GRANT “EXP_FULL_DATABASE” TO “TESTER”; GRANT “IMP_FULL_DATABASE” TO “TESTER”;\n用户修改密码,解锁 ALTER USER “SCOTT” IDENTIFIED BY “***” ALTER USER “SCOTT” ACCOUNT UNLOCK …"
November 12, 2008
ORACLE用户常用数据字典的查询使用方法
"查看当前用户的缺省表空间 SQL\u0026gt;select username,default_tablespace from user_users;\n查看当前用户的角色 SQL\u0026gt;select * from user_role_privs;\n查看当前用户的系统权限和表级权限 SQL\u0026gt;select * from user_sys_privs; SQL\u0026gt;select * from user_tab_privs;\n查看用户下所有的表 SQL\u0026gt;select * from user_tables;\n显示用户信息(所属表空间) select default_tablespace,temporary_tablespace from dba_users where username=’GAME’;\n**1、用户 ** 查看当前用户的缺省表空间 SQL\u0026gt;select username,default_tablespace from user_users;\n查看当前用户的角色 SQL\u0026gt;select * from user_role_privs; …"
November 12, 2008
第二章:oracle中的索引
"1,索引\n与表关联的可选结构\n加快SQL语句的执行\n减少磁盘I/O\nCREATE INDEX 语句用于创建索引\n在逻辑上和物理上独立于表中的数据\nORCALE自动维护索引\n2,唯一索引\n确保在定义索引的列中没有重复的值\nORACLE自动为主键列和唯一键列创建唯一索引\nCREATE UNIQUE INDEX 语句用于创建唯一索引\n//创建唯一索引的语法 CREATE UNIQUE INDEX index_name on table_name(column_name);\n//例:\nSQL\u0026gt; create unique index idx_stuId on student(studentid);\n3:组合索引\n在表的多个列上创建的索引\n也称为“连接索引”\n组合索引中的列可以按任意顺序排列\n对于在WHERE子句中包含多个列的查询,可以提高数据访问速度\n//\n创建组合索引的语法\nCREATE INDEX index_name on table_name(cloumns_list);\n//例:\nSQL\u0026gt; create index idx_empNoAndDeptNo on …"
November 12, 2008
用一个实例讲解oracle数据库中的connect resource权限
"connect resource权限;\ngrant connect,resource to user;\n后用户包括的权限:\nCONNECT角色: –是授予最终用户的典型权利,最基本的\nALTER SESSION –修改会话\nCREATE CLUSTER –建立聚簇\nCREATE DATABASE LINK –建立数据库链接\nCREATE SEQUENCE –建立序列\nCREATE SESSION –建立会话\nCREATE SYNONYM –建立同义词\nCREATE VIEW –建立视图\nRESOURCE角色: –是授予开发人员的\nCREATE CLUSTER –建立聚簇\nCREATE PROCEDURE –建立过程\nCREATE SEQUENCE –建立序列\nCREATE TABLE –建表\nCREATE TRIGGER –建立触发器\nCREATE TYPE –建立类型\n从dba_sys_privs里可以查到: SQL\u0026gt; select grantee,privilege from dba_sys_privs\n2 where grantee=’RESOURCE’ order by …"
November 12, 2008
找回oracle的户名和密码
"CMD下 输入 SQLPLUS /NOLOG 然后再在出来的界面中打入 CONN /AS SYSDBA 这样就会以本地系统登录的用户为信任用户进入数据库的操作 ALTER USER SYS IDENTIFIED BY “123”; 这样就可以将SYS的密码改为123 或者改SYSTEM的密码,都一样。\n这样你就可以用SYS用户随心所欲了。\n另一种是新增用户: CREATE USER MaoMao IDENTIFIED BY “123”; 新增MaoMao后改变她的权限就可以了,改变用户权限的命令是: GRANT ROLES TO MaoMao;\n还有另一种更简便的方法,在本机CMD下 输入 SQLPLUS SYS AS Sysdba 然后要求输密码时按Enter即可,进入后自行改密码…"
November 12, 2008
卸载windows服务
"与“服务控制器”和已安装设备进行通讯。SC.exe 检索和设置有关服务的控制信息。可以使用 SC.exe 来测试和调试服务程序。可以设置存储在注册表中的服务属性来控制如何在启动时和作为后台程序运行时启动服务应用程序。SC.exe 的参数可以配置指定的服务,检索当前服务的状态,也可以停止和启动服务。可以生成批处理文件来调用不同的 SC.exe 命令以自动启动或关闭服务序列。SC.exe 提供的功能类似于“控制面板”中“管理工具”项中的“服务”。\n打开CMD后,运行SC命令得到如下help信息:\n描述: SC 是用于与服务控制管理器通信的命令行程序。 用法: sc [command] [service name] … 选项 的格式为 “\\ServerName” 可以键入 “sc [command]”以获得命令的进一步帮助 命令: query———–查询服务的状态, 或枚举服务类型的状态。 queryex———查询服务的扩展状态, 或枚举服务类型的状态。 start———–启动服务。 pause———–发送 PAUSE 控制请求到服务。 interrogate—–发送 INTERROGATE …"
November 12, 2008
MySQL数据库向Oracle转换时注意若干问题
"有很多应用项目, 刚起步的时候用MySQL数据库基本上能实现各种功能需求,随着应用用户的增多,数据量的增加,MySQL渐渐地出现不堪重负的情况:连接很慢甚至宕机,于是就有把数据从MySQL迁到 Oracle的需求,应用程序也要相应做一些修改。本人总结出以下几点注意事项,希望对大家有所帮助。\n1. 自动增长的数据类型处理 MySQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。 Oracle没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。\nCREATE SEQUENCE 序列号的名称 (最好是表名 序列号标记) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;其中最大的值按字段的长度来定, 如果定义的自动增长的序列号 NUMBER(6) , 最大值为999999 INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL\n2. 单引号的处理 MySQL里可以用双引号包起字符串,Oracle里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号 …"
November 12, 2008
link和@import引用css文件方法的区别
"元素所参考的样式用户可以自由的选择加以改变,而导入的样式表单就自动的与剩下的样式表融合在一起了\nCSS与HTML文档结合的4中方法:\n1 使用元素链接到外部的样式文件\n2 在元素中使用”style”元素来指定\n3 使用CSS “@import”标记来导入样式表单\n4 在内部的元素中使用”style”属性来定义样式\n一个例子:\ncss demo\n第一种是直接在html页面上进行css书写,而第二种和第三种是采用外部引用样式单独提取文件。\n问题1.到底link和@import有什么区别?\n我们先来看看他们的定义\nlink元素\nHTML和XHTML都有一个结构,它使网页作者可以增加于HTML文档相关的额外信息。这些额外资源可以是样式化信息(CSS)、导航助手、属于另 外形式的信息(RSS)、联系信息等等。\n@import\n指定导入的外部样式表及目标设备类型。\n其实link和@import的最根本区别就是,link 是一个 html 的一个标签 ,而**@import** 是 css 的一个标签 ,\nlink除了调用css外还可以有其他作用譬如声明页面链接属性,声明目录,rss等等, …"
November 11, 2008
char和varchar2的区别
"区别: 1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc”,对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2 (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。 2.CHAR的效率比VARCHAR2的效率稍高。 3.目前VARCHAR是VARCHAR2的同义词。工业标准的VARCHAR类型可以存储空字符串,但是oracle不这样做,尽管它保留以后这样做的权利。Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库中varchar列可以存储空字符串的特性改为存储NULL值。如果你想有向后兼容的能力,Oracle建议使用VARCHAR2而不是VARCHAR。\n何时该用CHAR,何时该用varchar2? CHAR与VARCHAR2是一对矛盾的统一体,两者是互补的关系. VARCHAR2比CHAR节省空间,在效率上比CHAR会稍微差一些,即要想获得效率,就必须牺牲一定的空间,这也就是我们在数据库设计上常说的‘以 …"
November 11, 2008
用PHP调用Oracle存储过程
"PHP程序访问数据库,完全可以使用存储过程,有人认为使用存储过程便于维护,不过仁者见仁,智者见智,在这个问题上,偶认为使用存储过程意味着必须要DBA和开发人员更紧密配合,如果其中一方更变,则显然难以维护。\n但是使用存储过程至少有两个最明显的优点:速度和效率。使用存储过程的速度显然更快。 在效率上,如果应用一次需要做一系列SQL操作,则需要往返于PHP与ORACLE,不如把该应用直接放到数据库方以减少往返次数,增加效率。 但是在INTERNET应用上,速度是极度重要的,所以很有必要使用存储过程。 偶也是使用PHP调用存储过程不久,做了下面这个列子。\n代码:-\n//建立一个TEST表 CREATE TABLE TEST ( ID NUMBER(16) NOT NULL, NAME VARCHAR2(30) NOT NULL, PRIMARY KEY (ID) );\n//插入一条数据 INSERT INTO TEST VALUES (5, ‘PHP_BOOK’);\n//建立一个存储过程 CREATE OR REPLACE PROCEDURE PROC_TEST ( p_id IN OUT …"
November 11, 2008
apache 中控制虚拟主机的php功能
"使用情况分以下两种:\n一,在httpd.conf中配置了全局使用php脚本,则使用下面的方法 在虚拟主机的设置小节中添加php_flag engine on/off 字串7\n如: 字串9 ServerName xxxxxx.com php_flag engine off serveralias www.xxxxxx.com ServerAdmin [email protected] DocumentRoot “/home/xxxxxx/htdocs” haohtml.com\n二.没有在httpd.conf中配置执行php脚本功能\n在虚拟主机配置中这样改:\n把 AddType application/x-httpd-php .php 这句话放到需要运行php的虚拟主机的配置中\n#这个虚拟主机不能运行php\nServerAdmin [email protected] DocumentRoot d:/www.haohtml.com/ ServerName www.haohtml.com\n#这个虚拟主机可以运行php\nServerAdmin [email protected] …"
November 11, 2008
如何在Oracle 中实现类似自动增加 ID 的功能?
"我们经常在设计数据库的时候用一个系统自动分配的ID来作为我们的主键,但是在ORACLE 中没有这样的 功能,我们\n可以通过采取以下的功能实现自动增加ID的功能\n1.首先创建 sequence\ncreate sequence seqmax increment by 1\n2.使用方法\nselect seqmax.nextval ID from dual\n就得到了一个ID\n如果把这个语句放在 触发器中,就可以实现 和 ms sql 的自动增加ID相同的功能!"