




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
sELECT * FROM qj_test;恢复数据create table qj_test2asselect * from qj_test as of TIMESTAMP to_timestamp(20120711 16,yyyymmdd hh24);CREATE TABLE qj_test3(autoid NUMBER(30) NOT NULL PRIMARY KEY,NAME CHAR(30) NOT NULL,ID NUMBER(10) NOT NULL,address CHAR(50) NOT NULL)CREATE SEQUENCE temsequenceMINVALUE 1MAXVALUE 99999999START WITH 1INCREMENT BY 3NOCACHE;DROP SEQUENCE temsequenceINSERT INTO qj_test3 VALUES(123,qijin,temseq.nextval,123);INSERT INTO qj_test3 VALUES(temseq.nextval,qijin,123,123);/values这六个字母一定要打正确 否则会有不必要的麻烦SELECT SYSDATE FROM dualINT类型是NUMBER类型的子类型commit 的使用如何解决ORA-00054资源正忙,要求指定NOWAIT /杀掉进程 或者等待执行结束CREATE SEQUENCE temyearMINVALUE 1MAXVALUE 999999START WITH 2009INCREMENT BY 1NOCACHE;commit 之前 其他账号不能看到你更新的数据了UPDATE qj_test3 SET birth=temyear.nextval WHERE autoid=25;COMMIT;CURRVAL 必须在取了NEXTVAL之后才有效。它只表示当前SESSION最后一次取值,不表示这个SEQUENCE(被多个SESSION使用)的当前值。SELECT temyear.nextval FROM dual /查询到temyear的下一个数值 每查询一次 值修改一次不同的数据库中也成立 可以说是同步的SELECT temyear.nextval-10 FROM dual 可以进行计算SELECT temseq.currval FROM dual 不能一开始就用 需要初始化一下=第一次执行的时候要next 初始化一下(oracle规定)第一个循环体的使用DECLARECOUNT NUMBER:=1;countid NUMBER:=16;LOOPCOUNT:=COUNT+1;EXIT WHEN COUNT6;UPDATE qj_test3 SET birth= temyear.nextval WHERE birth=null;COMMIT;END LOOP;DECLAREv_COUNT NUMBER:=1;countid NUMBER:=16;BEGINWHILE v_COUNT=6LOOPUPDATE qj_test3 SET birth= temyear.nextval WHERE autoid=countid;v_COUNT := v_COUNT + 1;countid := countid + 3;COMMIT;END LOOP;END; / 为什么用exit when 不行! (没有找到解决办法)ALTER TABLE qj_test3ADD SNO NUMBER(20) /给qj_test3这张表 添加了一个属性ALTER TABLE qj_test3DROP COLUMN SNO /给qj_test3这张表 删除了一个属性CREATE OR REPLACE TRIGGER trg_testBEFORE INSERT ON qj_test3FOR EACH ROWBEGINSELECT temseq.nextval INTO :new.autoid FROM dual; /new. 这个很关键!END trg_testSELECT * FROM All_Triggers a WHERE a.table_name=QJ_TEST3;/查询表对应的触发器也可在my objects 里 查看triggers 就可以看到所有的触发器了!每张表最多可建立12 种类型的触发器,它们是:BEFORE INSERTBEFORE INSERT FOR EACH ROWAFTER INSERTAFTER INSERT FOR EACH ROWBEFORE UPDATEBEFORE UPDATE FOR EACH ROWAFTER UPDATEAFTER UPDATE FOR EACH ROWBEFORE DELETEBEFORE DELETE FOR EACH ROWAFTER DELETEAFTER DELETE FOR EACH ROW1. 执行 BEFORE语句级触发器;2. 对与受语句影响的每一行:l 执行 BEFORE行级触发器l 执行 DML语句l 执行 AFTER行级触发器 3. 执行 AFTER语句级Compilation errors for TRIGGER AGENT_INTE_NEW.TRG_TESTError: PLS-00801: 内部错误 ph2csql_strdef_to_diana:bindLine: 2Text: FOR EACH ROWError: PL/SQL: ORA-06544: PL/SQL: 内部错误, 参数: ph2csql_strdef_to_diana:bind, , , , , , , Line: 4Text: SELECT temseq.nextval INTO: new.autoid FROM dual;Error: PL/SQL: SQL Statement ignoredLine: 4Text: SELECT temseq.nextval INTO: new.autoid FROM dual;代码一:CREATE OR REPLACE TRIGGER trg_test BEFORE INSERT ON qj_test3FOR EACH ROWBEGINSELECT temseq.nextval INTO: (空格)new.autoid FROM dual;END;代码二:CREATE OR REPLACE TRIGGER trg_testBEFORE INSERT ON qj_test3FOR EACH ROWBEGINSELECT temseq.nextval INTO:new.autoid FROM dual;END trg_test;代码一爆出了三个错误,经过一晚上弱弱地查找,终于把三个错误找出,就是一个没有必要的空格 打错了位置! 惨痛的教训啊!SQL INNER AND LEFT JOIN 关键字训练!ALTER TABLE qj_test4DROP COLUMN addressALTER TABLE qj_test4ADD qj_size NUMBER(20)UPDATE qj_test4 SET qj_size=temyear.nextval WHERE autoid!=NULL;COMMIT; =有错误 更新不了 找不到错误所在? 不知道是不是系统繁忙 无法响应!试验另外一种方法:UPDATE qj_test4 SET qj_size=temyear.nextval WHERE autoid=37;COMMIT;和UPDATE qj_test4 SET qj_size=temyear.nextval WHERE autoid=37;COMMIT; 此方法是错误的! 因为数字 不能用单引号 单引号好像是用来匹配字符串的UPDATE qj_test4 SET qj_size=temyear.nextval-1000 WHERE autoid=16;COMMIT; =可以用来更新替换qj_size的原有值!按住F8 执行 和按住绿色的按钮能commit! 才算提交成功!SELECT * FROM qj_test3LEFT JOIN qj_test5ON qj_test3.autoid=qj_test5.autoidSELECT Distinct * FROM qj_test3LEFT JOIN qj_test5ON qj_test3.autoid=qj_test5.autoidDELETE ! ORDER BY TOP = LIKE = INSELECT * FROM qj_test3ORDER BY birthDELETE FROMQJ_TEST3WHERE birth=1990SELECT * FROM qj_testWHERE Rownum5 =返回前4条记录!SELECT * FROM qj_test3WHERE NAME IN (qijin,lby) SELECT * FROM qj_test5WHERE autoID BETWEEN 16 AND 25 =取在16到25之间的AUTOID的所有行SELECT q.autoidFROM qj_test3 AS qWHERE q.autoid IS NOT NULL=报错 网上给出的解决办法是 不用AS 直接用 qj_test3UNION 操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。CREATE TABLE qj_test6ASSELECT * FROM (SELECT * FROM qj_test3UNION ALLSELECT * FROM qj_test5)W3cschool 没有标明 select into 是sql server的写法SELECT * INTO qj_test7FROM qj_test6这是oracle的写法 前
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-河北-河北广播电视天线工四级(中级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-河北-河北农业技术员三级(高级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-江苏-江苏环境监测工二级(技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-广西-广西水利机械运行维护工五级(初级工)历年参考题库典型考点含答案解析
- 焊工安全知识培训目的
- 2025年事业单位工勤技能-广西-广西医技工五级(初级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广东-广东计算机操作员四级(中级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广东-广东房管员四级(中级工)历年参考题库典型考点含答案解析
- 2020-2025年安全员之A证(企业负责人)通关题库(附答案)
- 2025年事业单位工勤技能-北京-北京计算机文字录入处理员五级(初级工)历年参考题库典型考点含答案解析
- 金融标准化知识培训课件
- 2024年医销售药销售工作总结
- 《电力建设工程施工安全管理导则》(NB∕T 10096-2018)
- 仓库出错货款报告范文
- 银行下半年对公账户新增存款营销活动方案
- 健康管理中心运营与服务流程规范
- GB/T 2820.7-2024往复式内燃机驱动的交流发电机组第7部分:用于技术条件和设计的技术说明
- HG∕T 4281-2011 塑料焊接工艺规程
- 自考08257《舆论学》备考试题库(含答案)
- HG20202-2014 脱脂工程施工及验收规范
- 中学舆情应急处置方案
评论
0/150
提交评论