用视图解决数据库链路问题
Oracle8.1.7与以前的版本好像总有些不兼容。 [@more@] 本人在使用Oracle8.1.7的时候遇到了一个怪现象,在Sqlplus中使用数据库链路没有任何问题,但一到了Forms Builder中,如果在触发器中使用数据库链路,编译的时候就会出现错误。错误现象根据不同版本的Forms Builder略有不同,主要是自动退出,不留任何错误提示,这也就为寻找错误带来了不便。以前的程序在数据库升级后都无法重新编译了,为此我们想了很多办法。同义词不行,比如:用xxx替代xxx@db_link,还是出错。用数据库级的存储过程倒是可以,但太麻烦。还有一种笨办法,用低版
Tru64 Unix中查看系统资源的一些命令
Tru64 Unix中一些有用的东西。 [@more@] 单位的ES40很久以前就坏了,可是始终没人去修。感觉Tru64 Unix用的人不是很多,精通的就更少。自己研究了一段,总算把操作系统和Oracle数据库都装上了,但是感觉比以前慢了许多。这是为什么呢?困扰了我很长时间,直到今天请教了别人,才有点眉目。可能是我修改操作系统中系统参数的方式有问题,我是用vi直接编辑/etc/sysconfigtab,在后面加入了ipc: shm_max = 2139095040 shm_mni = 128 shm_seg = 32但是人家告诉我一个命令:sysconfig -q ipc,结果发现ipc参数与我修改的不同,也就是说
中国足球
这就是足球,中国队又一次窝囊的死了。 [@more@]大胜香港毫无意义,谁让你把命运交给了别人呢。不出线也好,省着让人惦记,这样可以让球迷们早早休息了。就算凭借昨天的大胜挤进亚洲区八强也不是什么光彩的事情,一样会被人所不齿。这次冲击失利后,我并没有感觉多么悲伤,也许是习惯了,也许是早就没抱什么希望。中国足球,没戏!
用Developer2000开发POS机程序常见问题的解决-3
POS机的程序更新是一个很令人头痛的问题,尤其是POS机数量比较多的时候。 [@more@] 如果手工逐个更新POS机的程序实在是太麻烦了,而且容易遗漏。要是能像其他软件一样可以自动检测程序的版本,并且可以自动下载最新的更新程序就好了。我的解决思路大致是:1.建立一个FTP服务器,用于存储最新的更新程序。2.建立一个表用于存储最新的版本号。3.在安装目录中存放一个文本文件存储当前的版本号。4.在登录的时候比对文本中的版本号与服务器数据库中的版本号,如果不同则下载最新的程序。登录程序的WHEN-NEW-FORM-INSTANC触发器内容如下:D
用Developer2000开发POS机程序常见问题的解决-2
POS机的开发很重要的一点就是解决各种设备的驱动,比如打印机、顾客显示屏、钱箱等。 [@more@] 以打印机为例,在FORM中可以用TEXT_IO来完成打印功能,程序如下:PROCEDURE prn(linebuf varchar2) ISBEGIN declare out_file text_io.file_type; begin out_file:=text_io.fopen('PRN','w'); text_io.putf(out_file,' %sn',linebuf); text_io.fclose(out_file);null; end;END;注:需要先在Windows系统下添加相应的打印机驱动程序。但有时打印机的驱动就是一个dll文件,TEXT_IO就不适用了,需要用ORA_FFI来解决。以下是
用Developer2000开发POS机程序常见问题的解决-1
本人一直用Developer2000中的FORM开发POS机程序,总结了一点开发经验。 [@more@] 在POS机开发过程中发现一些POS机必须功能用Developer2000的FORM很难实现,比如程序需要判断POS机与服务器之间的数据通讯是否正常,如遇到服务器数据库没有启动,数据库意外终止,网络意外中断等情况,程序需自动切换到单机模式下进行收款工作。经过一段时间的摸索,发现在FORM中采用ON-ERROR触发器可以基本实现。ON-ERROR触发器文本如下:if dbms_error_code in(-3114,-3113,-1033,-1034,-1089,-1090) then message('网络故障!!!');synchronize;
不可思议的“泡币”
这个月最不可思议的事就是我参加了网易的“泡币”运动。 [@more@] “十一”的时候朋友告诉我,网易正在进行用popo币换1G免费邮箱的活动,快去吧,晚了就来不及了。我马上到网易网站一看,果然是真的,10万popo币就一个把260M的免费信箱换成1G,而且100个popo币可以免费发一条短信。以前我从来没用过popo,但还是马上下载了一个,开始了漫长的挂机。登陆popo,每8秒1个popo币,一天24小时应该能得10800个币,加上从好友的分成,我每天可以得3万多,没几天我就凑够了10万,立刻把我的网易免费信箱升级到1G。兴奋之余,又开始为朋友信箱的
Oracle Terminal使用实例
很多人在使用Oracle Terminal时经常遇到一些困难,这是我总结的一点经验,希望能有些帮助。 [@more@] 首先声明,我使用的版本是Form6.0。运行Oracle Terminal,打开fmrzhsw.res(如果缺省语言用英文则打开frmusw.res,二者操作是一样的)。运行Funcations中的Edit Keys,或点击工具条上第一个写着K的图标。点击runform后按Edit Key Bindings…这里就是一些最常用功能对应的功能键定义。可以看出Accept(提交)对应的竟然是Control+<,怪不得F10不能存盘了。真不知道Oracle是怎么搞的,从Form6开始这些功能键与以前不一样了。马上作
怎样确定恰当的Oracle数据块尺寸
在创建数据库之前所要作的最重要的决定是选择数据库中数据块的尺寸。 [@more@] 一旦创建了数据库,Oracle数据库中数据块的尺寸就不能改变了。数据块的尺寸在数据库的整个生存期中既不能增加也不能减少。数据块的尺寸由数据库初始化参数DB_BLOCK_SIZE指定。数据块是数据库存储的最小单元,也是数据库I/O的最小单元。Oracle 数据块的尺寸必须是操作系统块尺寸的倍数。在所有操作系统上,数据块尺寸最小必须为2048字节。而允许的最大数据块尺寸有赖于操作系统的类型,不过在Oracle8i 中最大不能超过32K。如用于数据仓库的决策支持或联机
Oracle数据库中Create user的注意事项
Create user看似简单,但如果不注意还是会出现一些错误。 [@more@] 数据库中的每个用户都与两种类型的表空间有关:* 用户的缺省表空间,它是Oracle 创建缺省用户对象的所在。* 用户的临时表空间,在该表空间中, Oracle 为执行基于磁盘的数据排序创建临时段。当在CREATE USER 语句中创建了用户而没有直接指定其缺省表空间和临时表空间时,Oracle 将设置SYSTEM 表空间为该用户ID 的缺省和临时表空间。如果该数据库中的用户都将SYSTEM 表空间作为它们的缺省或临时表空间,就可能导致SYSTEM 表空间产生大量碎片。
虚度六年
一转眼工作六年了,回过头来总结一下才发现自己荒废了大好时光。 [@more@] 98年参加工作,一直没有换单位,也许我天生就是个保守的人。六年,弹指一挥间,我也从一个毛头小伙变成为人夫、为人父的男人。总结这六年的工作经历,实在是不堪回首。上大三就开始接触Oracle,到现在还只会Oracle,连个Access都用不好;从Form3.0、Form4.5、5.0到6.0始终还是Oracle的Developer,连个Delphi都用不好;PL/SQL用的挺熟,连C语言都忘了,更别提Java了;Html还没弄明白、PHP刚入点门,别人又都换成了JSP;项目没少做,可UML是什么都得从头学;文档
对Oracle数据库中Stroage子句的一些理解
在工作中经常能遇到因Stroage参数设置不当引起的问题,以下是我对Storage子句的一些浅显的理解。 [@more@] INITIAL 对象建立时分配的初始区的大小NEXT 与 PCTINCREASE 一起使用,用于计算后来分配的区的大小PCTINCREASE 下一次分配的区要增加的百分比MINEXTENTS 给对象(当它建立时)分配的区的最小数量MAXEXTENTS 可以分配给对象的区的最大数量一旦建立了某个对象,它的数据存储参数INITIAL 和MINEXTENTS 不能修改,除非删除和重新创建该对象。对于NEXT 和 PCTINCREASE 的任何更改都只影响后来分配的那些区。如果一个表空间的PCTINC
移动Oracle数据文件的方法
这是以前操作的一个实例,环境Oracle8.1.6+Tru64Unix4.0F。 [@more@] svrmgrlconnect internal;shutdown immedaite;exit;mv /oracle/dbs/oradata/ora8/temp01.dbf /bak/temp01.dbfsvrmgrlconnect internal;startup mount ora8;alter database rename file '/oracle/dbs/oradata/ora8/temp01.dbf' to '/bak/temp01.dbf';alter database open;注意:mv前一定要注意目标文件夹是否有与源文件重名的文件,否则死定了,这是血的教训。
Oracle8.1.6 for Tru64的安装
虽然Oracle在Unix下的安装都类似,但我感觉在Tru64下还是比较复杂。 [@more@] 1.创建文件系统 disklabel -r dsk4c 查看 disklabel -rw dsk4c 重写 diskconfig 配置2.创建dba组 addgroup 创建oracle用户adduser mkfdmn /dev/disk/dsk4c oralce_domain mkfset oracle_domain oracle mkdir /oracle mount oracle_domain#oracle /oracle3.编辑.profile文件 ORACLE_BASE=/oracle ORACLE_HOME=$ORACLE_BASE/product/8.1.6 ORACLE_SID=ora8 ORACLE_TERM=vt100 ORACLE_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
Tru64 Unix5.1A在ES40上的安装
这台ES40可把我折磨苦了,一次次失败,总结出这个安装过程,不一定很全,但我就是这么做的。 [@more@] 1.shutdown -h now p00>>>show device 查看设备 b dqa02.进入图形安装界面,选择自定义3.分区磁盘 a区:root区 512M b区:swap区 512*3M g区:/usr区 剩余磁盘空间1/24.不编辑系统配置文件5.修改系统文件 /etc/securettys 在末行加一行 ptys,允许root远程telnet /etc/ftpusers 在root一行前加#号,允许root远程ftp /etc/sysconfigtab 末尾追加 ipc: shm_max=2139095040 shm_mni=128 sh
Apache2.0.40+PHP4.2.3在win2000下的安装
刚接触PHP的时候,费了半个月的时间研究安装,其实就这么点东西,很简单呀,hoho。 [@more@] 1.默认安装Apache2。2.把php的压缩包解压,假设放在d:/php4下。3.php.ini-dist改名php.ini,拷贝到c:/winnt下。 将php4ts.dll 拷贝到c:/winnt/system32下。4.修改php.ini中 extension_dir=d:/php4/extensions register_globals=on session.save_path=d:/php4/tmp(手工建立此目录) session.auto_start=15.修改Apache2的配置文件httpd.conf。 将AddDefaultCharset ISO-8859-1改成GB2312, 再添加下面两行: Addtype applica
安装Oracle7.2.3 for AIX
虽然Oracle7.2.3已经很少有人用了,但还是有些参考价值,尤其是8.0.6的安装与其非常相似。 [@more@] 1.创建文件系统,我的机器7个G,mount点 /oracle,类型为支持大文件的标准日至文件系统。 mount 文件系统 jsf ./dev/lv002.创建dba组,oracle用户,主目录 /oracle。3.#chgrp dba /oracle #chown oracle /oracle #chmod 755 /oracle4.#mkdir /usr/lbin 如已有此目录,则省略 #chmod 777 /usr/lbin5.创建ORACLE_DOC目录 #mkdir /oracle/odoc #chown oracle /oracle/odoc #chgrp dba /oracle/odoc #chmod 755 /oracle/odoc6
安装AIX4.3.3
单位原来用IBM的RS6000机器(G40),操作系统AIX4.3.3。几经摸索,将安装过程贴上来,自己以后备查,也希望能帮上过路的朋友。 [@more@] 1.将AIX安装盘放入光驱,当自检Keyboard通过后,按“5”(从光驱引导)。2.选择“1”、“1”,进入安装程序,再选“2”Change/Show Installation Settings ans Install,将安装方式改成“New and Complete Installation”。3.按提示缺省安装。4.安装完成后,设置时间、root口令、IP地址(en0)5.改变文件系统大小 /tmp —> 32M、 /usr —> 192M。6.改变用户最大进程数。 #smit —System E