游客sbxovxqot23rk_个人页

个人头像照片 游客sbxovxqot23rk
0
2
0

个人介绍

暂无个人介绍

擅长的技术

获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
暂无更多信息
正在加载, 请稍后...
暂无更多信息
  • 提交了问题 2018-07-20

    域名被盗了怎么找回

  • 回答了问题 2018-06-15

    阿里云域名如何赎回

    详细解答可以参考官方帮助文档 域名赎回规则 阿里云域名到期后,通常有 30 天的续费宽限期。错过了续费宽限期,就会进入域名赎回期: 国内域名(包含中/英文 .cn、.gov.cn、.中国、.公司、.网络等)和 .co 域名会进入 14 天的赎回期。过了赎回期,域名将直接向公众开放重新注册。 国际域名(包含中/英文 .com、中/英文 .net、中/英文 .biz、中/英文 .cc、中/英文 .tv、.org、.me、.so、.tel、.mobi、.asia、.name、.info 等)会进入 29 天的赎回期。阿里云会员账户下的国际域名错过赎回期,将进入 5 天的等待删除期。在等待删除期,域名不能续费,也不能赎回,只能等待被删除。过了 5 天等待删除期,将直接向公众开放重新注册。 .hk 域名错过了到期后的 28 天续费宽限期,会进入 59 天的赎回期,过了赎回期即被删除。 .link、.click、.help、.gift、.pics、.photo 域名错过了到期后的 30 天续费宽限期,会进入 179 天的赎回期,过了赎回期将被域名注册局随时删除。 域名是否处于赎回期,以域名控制台状态为准。域名WHOIS会因AutoRenew、业务流转等原因,导致过期时间、状态可能与域名控制台不一致,此时WHOIS信息仅供参考。 域名过期且进入赎回期后,阿里云可以将这个过期域名继续保留在您的账户下,也可以选择将这个域名转移至专用账户进行统一管理,还可以将其放入预释放域名清单向公众提供竞价活动。当您在赎回期内未行使赎回权利的,竞价成功者将获得该域名的注册持有权。 以下视频为您形象地讲述了域名赎回的流程。具体操作步骤,请参见下文描述。 域名赎回操作流程 为了保证您的域名能够正常使用,请您务必提前进行续费,避免不必要的损失。错过续费期后,域名进入赎回期。域名赎回步骤如下: 登录 阿里云域名控制台,单击 域名列表 页面的 急需赎回域名。 选择急需赎回的域名。在域名列表下方,单击 域名赎回。 按流程引导操作。 说明 赎回期间,需要用比正常续费价格高的费用对域名进行赎回(域名赎回价格由注册局规定,阿里云只是代收代缴)。域名赎回价格,请参考 域名价格。 赎回期域名解析暂停。一旦操作赎回,赎回成功后将即时恢复 DNS。但是,域名的解析记录需要您自行重新设置,一般 24-48 小时恢复生效。
    踩1 评论0
  • 回答了问题 2018-05-21

    RDS降配

    详细解答可以参考官方帮助文档 根据业务需求,您可以变更实例配置,即变更实例规格、实例系列(实例由基础版变更为高可用版)、存储空间等。在实例变配期间: 变更配置生效期间,RDS服务可能会出现1次30秒的闪断,请尽量在业务低谷执行变配操作,或确保您的应用有自动重连机制,以避免闪断造成的影响。 RDS支持设置变配操作的执行时间,详情请参见设置可维护时间段。 包年包月变配规则 在合同期内: 立即升级配置,升级实例的规格(内存和CPU),该操作立即生效,实例的连接数和IOPS将随着规格的升级而提升。 续费降配/续费升配,续费降配/续费升配:对实例进行续费,并降低或升级续费后的实例配置,续费变配的规格在下一个计费周期才生效。变配后的计费说明,请参见变配计费说明 立即降低配置,降低实例的规格(内存和CPU)或磁盘,该操作立即生效,实例的连接数和IOPS将随着规格的降级而下降,实例性能也会降低。 实例到期后: 在续费期间可以升级或降级配置,新配置在新的计费周期开始时生效。关于续费步骤,请参见续费。 按量付费变配规则 可以随时升级或降级实例配置。 注意事项 在实例升降级中,与数据库、账号、网络等相关的大部分操作都无法执行,请选择合适的时间变更实例配置。 在变更实例过程中,您可以进行以下操作:修改白名单、开启SQL审计、设置实例可维护时间段。 在变更实例过程中,您无法进行以下操作:添加只读实例、添加灾备实例、释放实例、按时计费实例转包年包月、迁移可用区、创建账号、重置密码、修改账号权限、创建数据库、删除数据库、设置网络类型、开通数据库代理、修改连接地址、申请外网地址、切换主备库、修改数据库备份方式、恢复实例数据、修改参数(使用控制台设置参数、使用SQL命令设置参数)。 立即升级包年包月实例配置 说明 本操作以MySQL 5.7基础版升级至MySQL 5.7高可用版为例。 登录RDS管理控制台。 选择目标实例所在地域。 单击目标实例的ID,进入实例基本信息页面。 在配置信息栏中单击变更配置打开如下窗口。 单击立即升级配置,单击下一步打开变更配置页面,此时您只能升级实例配置。如下图所示,选择您需要的实例配置。 参数 说明 系列 实例是MySQL 5.7时,用于高可用版和基础版之间的切换。 实例是MySQL 5.6版本时,用于高可用版和金融版之间的切换 可用区 可选择将实例迁移至其它可用区,仅适用于MySQL 5.6和SQL Server 2008 R2版本的实例。 规格 实例可选择的内存和CPU。 存储空间 据当前数据库存储空间的使用量,选择合适的存储空间。 每个实例规格所对应的存储空间不同,若当前规格所对应的存储空间无法满足您的需求,请先变更实例规格,再选择空间。 关于规格详情,请参见实例规格表。 切换时间 选择变更实例配置的执行时间: 变更实例配置会涉及到底层的数据迁移,您可以选择在数据迁移结束后立即变更配置。 变配时有很多操作无法执行,例如管理数据库和账号、切换网络类型,您也可以选择在设置可维护时间段内执行变更实例配置的操作。 若您要修改可维护时间,请执行如下操作。若不需要,请跳过。 单击修改,如下图所示,系统会新打开一个网页并跳转至实例的基本信息页面。 在配置信息栏中,选择可维护时间段,单击保存,如下图所示。 返回变配实例页面。 在变配实例页面,勾选关系型数据库RDS服务条款,单击确认变更,请根据后续提示完成支付流程。 续费降配/升配包年包月实例 说明 本操作以续费降配MySQL 5.7 SSD云盘为例。 登录RDS管理控制台。 选择目标实例所在地域。 单击目标实例的ID,进入实例基本信息页面。 在配置信息栏中单击变更配置打开变配选择对话框。 单击续费降配/续费升配,单击下一步打开变更配置页面,如下图所示,选择您需要的实例配置。 说明 续费变配的规格在下一个计费周期才生效。 勾选关系型数据库RDS服务条款,单击去支付,根据提示完成续费历程。 立即降低包年包月实例配置 登录RDS管理控制台。 选择目标实例所在地域。 单击目标实例的ID,进入实例基本信息页面。 在配置信息栏中单击变更配置打开如下窗口。 单击立即降低配置,单击下一步打开降低实例页面,如下图所示,选择您需要的实例配置。 设置好实例的切换时间,勾选关系型数据库RDS服务条款,单击确认变更,根据提示完成续费历程。 变更按量付费实例配置 说明 本操作以变配MySQL 5.7 SSD云盘为例。 登录RDS管理控制台。 选择目标实例所在地域。 单击目标实例的ID,进入实例基本信息页面。 在配置信息栏中单击变更配置打开变更配置页面,选择您需要的实例配置。 单击确认变更,请根据后续提示完成支付流程。
    踩1 评论0
  • 回答了问题 2018-05-12

    PPAS创建并连接数据库

    详细解答可以参考官方帮助文档 通过本文档中的示例,Oracle 用户可以快速了解 PPAS 数据库中的术语及概念,以便在迁移及开发过程中提高效率。 以下所有操作基于一个基础模型,通过此模型用户可以看到 RDS for PPAS 中最基本的创建数据库、创建数据表、管理用户等操作,基础数据模型如下: 同时,为了模拟 Oracle 上类似的环境,我们会建立一名字为 orcl_ppas 的数据库(database),在此数据库中建立名为 scott 的用户,并建立与这个用户同名的 schema 用户空间。 PPAS兼容性手册 关于PPAS兼容性说明的完整内容,请参见阿里云PPAS兼容性手册。 连接数据库 psql psql -h ppasaddress.ppas.rds.aliyuncs.com -p 3433 -U myuser -d template1 用户 myuser 的口令: psql.bin (9.4.1.3, 服务器 9.3.5.14) 输入 'help' 来获取帮助信息. template1=> 创建并连接数据库 CREATE DATABASE template1=> CREATE DATABASE orcl_ppas; CREATE DATABASE template1=> \c orcl_ppas psql.bin (9.4.1.3, 服务器 9.3.5.14) 创建普通用户 CREATE ROLE orcl_ppas=> CREATE ROLE scott LOGIN PASSWORD 'scott123'; CREATE ROLE 创建用户的私有空间 CREATE SCHEMA orcl_ppas=> CREATE SCHEMA scott; CREATE SCHEMA orcl_ppas=> GRANT scott TO myuser; GRANT ROLE orcl_ppas=> ALTER SCHEMA scott OWNER TO scott; ALTER SCHEMA orcl_ppas=> REVOKE scott FROM myuser; REVOKE ROLE 说明 如果在进行 ALTER SCHEMA scott OWNER TO scott 之前没有将 scott 加入到 myuser 角色,将会出现如下权限问题。ERROR:must be member of role 'scott' 从安全角度出发,在处理完 OWNER 的授权后,请将 scott 用户移出 myuser 角色以提高安全性。 连接到 orcl_ppas 数据库 说明 此步骤十分重要,以下所有操作都是在 scott 账号下进行的,否则所建立的数据表及各种数据库对象将不属于 scott用户,导致权限问题。 [root@localhost bin]# ./psql -h ppasaddress.ppas.rds.aliyuncs.com -p 3433 -U scott -d orcl_ppas 用户 scott 的口令: psql.bin (9.4.1.3, 服务器 9.3.5.14) 输入 'help' 来获取帮助信息. orcl_ppas=> 创建数据表 CREATE TABLE CREATE TABLE dept ( deptno NUMBER(2) NOT NULL CONSTRAINT dept_pk PRIMARY KEY, dname VARCHAR2(14) CONSTRAINT dept_dname_uq UNIQUE, lock VARCHAR2(13) ); CREATE TABLE emp ( empno NUMBER(4) NOT NULL CONSTRAINT emp_pk PRIMARY KEY, ename VARCHAR2(10), job VARCHAR2(9), mgr NUMBER(4), hiredate DATE, sal NUMBER(7,2) CONSTRAINT emp_sal_ck CHECK (sal > 0), comm NUMBER(7,2), deptno NUMBER(2) CONSTRAINT emp_ref_dept_fk REFERENCES dept(deptno) ); CREATE TABLE jobhist ( empno NUMBER(4) NOT NULL, startdate DATE NOT NULL, enddate DATE, job VARCHAR2(9), sal NUMBER(7,2), comm NUMBER(7,2), deptno NUMBER(2), chgdesc VARCHAR2(80), CONSTRAINT jobhist_pk PRIMARY KEY (empno, startdate), CONSTRAINT jobhist_ref_emp_fk FOREIGN KEY (empno) REFERENCES emp(empno) ON DELETE CASCADE, CONSTRAINT jobhist_ref_dept_fk FOREIGN KEY (deptno) REFERENCES dept (deptno) ON DELETE SET NULL, CONSTRAINT jobhist_date_chk CHECK (startdate 创建视图 CREATE OR REPLACE VIEW CREATE OR REPLACE VIEW salesemp AS SELECT empno, ename, hiredate, sal, comm FROM emp WHERE job = 'SALESMAN'; 创建序列 CREATE SEQUENCE CREATE SEQUENCE next_empno START WITH 8000 INCREMENT BY 1; 插入数据 INSERT INTO INSERT INTO dept VALUES (10,'ACCOUNTING','NEW YORK'); INSERT INTO dept VALUES (20,'RESEARCH','DALLAS'); INSERT INTO dept VALUES (30,'SALES','CHICAGO'); INSERT INTO dept VALUES (40,'OPERATIONS','BOSTON'); INSERT INTO emp VALUES (7369,'SMITH','CLERK',7902,'17-DEC-80',800,NULL,20); INSERT INTO emp VALUES (7499,'ALLEN','SALESMAN',7698,'20-FEB-81',1600,300,30); INSERT INTO emp VALUES (7521,'WARD','SALESMAN',7698,'22-FEB-81',1250,500,30); INSERT INTO emp VALUES (7566,'JONES','MANAGER',7839,'02-APR-81',2975,NULL,20); INSERT INTO emp VALUES (7654,'MARTIN','SALESMAN',7698,'28-SEP-81',1250,1400,30); INSERT INTO emp VALUES (7698,'BLAKE','MANAGER',7839,'01-MAY-81',2850,NULL,30); INSERT INTO emp VALUES (7782,'CLARK','MANAGER',7839,'09-JUN-81',2450,NULL,10); INSERT INTO emp VALUES (7788,'SCOTT','ANALYST',7566,'19-APR-87',3000,NULL,20); INSERT INTO emp VALUES (7839,'KING','PRESIDENT',NULL,'17-NOV-81',5000,NULL,10); INSERT INTO emp VALUES (7844,'TURNER','SALESMAN',7698,'08-SEP-81',1500,0,30); INSERT INTO emp VALUES (7876,'ADAMS','CLERK',7788,'23-MAY-87',1100,NULL,20); INSERT INTO emp VALUES (7900,'JAMES','CLERK',7698,'03-DEC-81',950,NULL,30); INSERT INTO emp VALUES (7902,'FORD','ANALYST',7566,'03-DEC-81',3000,NULL,20); INSERT INTO emp VALUES (7934,'MILLER','CLERK',7782,'23-JAN-82',1300,NULL,10); INSERT INTO jobhist VALUES (7369,'17-DEC-80',NULL,'CLERK',800,NULL,20,'New Hire'); INSERT INTO jobhist VALUES (7499,'20-FEB-81',NULL,'SALESMAN',1600,300,30,'New Hire'); INSERT INTO jobhist VALUES (7521,'22-FEB-81',NULL,'SALESMAN',1250,500,30,'New Hire'); INSERT INTO jobhist VALUES (7566,'02-APR-81',NULL,'MANAGER',2975,NULL,20,'New Hire'); INSERT INTO jobhist VALUES (7654,'28-SEP-81',NULL,'SALESMAN',1250,1400,30,'New Hire'); INSERT INTO jobhist VALUES (7698,'01-MAY-81',NULL,'MANAGER',2850,NULL,30,'New Hire'); INSERT INTO jobhist VALUES (7782,'09-JUN-81',NULL,'MANAGER',2450,NULL,10,'New Hire'); INSERT INTO jobhist VALUES (7788,'19-APR-87','12-APR-88','CLERK',1000,NULL,20,'New Hire'); INSERT INTO jobhist VALUES (7788,'13-APR-88','04-MAY-89','CLERK',1040,NULL,20,'Raise'); INSERT INTO jobhist VALUES (7788,'05-MAY-90',NULL,'ANALYST',3000,NULL,20,'Promoted to Analyst'); INSERT INTO jobhist VALUES (7839,'17-NOV-81',NULL,'PRESIDENT',5000,NULL,10,'New Hire'); INSERT INTO jobhist VALUES (7844,'08-SEP-81',NULL,'SALESMAN',1500,0,30,'New Hire'); INSERT INTO jobhist VALUES (7876,'23-MAY-87',NULL,'CLERK',1100,NULL,20,'New Hire'); INSERT INTO jobhist VALUES (7900,'03-DEC-81','14-JAN-83','CLERK',950,NULL,10,'New Hire'); INSERT INTO jobhist VALUES (7900,'15-JAN-83',NULL,'CLERK',950,NULL,30,'Changed to Dept 30'); INSERT INTO jobhist VALUES (7902,'03-DEC-81',NULL,'ANALYST',3000,NULL,20,'New Hire'); INSERT INTO jobhist VALUES (7934,'23-JAN-82',NULL,'CLERK',1300,NULL,10,'New Hire'); 查询优化器数据分析 ANALYZE ANALYZE dept; ANALYZE emp; ANALYZE jobhist; 建立存储过程 CREATE PROCEDURE CREATE OR REPLACE PROCEDURE list_emp IS v_empno NUMBER(4); v_ename VARCHAR2(10); CURSOR emp_cur IS SELECT empno, ename FROM emp ORDER BY empno; BEGIN OPEN emp_cur; DBMS_OUTPUT.PUT_LINE('EMPNO ENAME'); DBMS_OUTPUT.PUT_LINE('----- -------'); LOOP FETCH emp_cur INTO v_empno, v_ename; EXIT WHEN emp_cur%NOTFOUND; DBMS_OUTPUT.PUT_LINE(v_empno || ' ' || v_ename); END LOOP; CLOSE emp_cur; END; -- -- Procedure that selects an employee row given the employee -- number and displays certain columns. -- CREATE OR REPLACE PROCEDURE select_emp ( p_empno IN NUMBER ) IS v_ename emp.ename%TYPE; v_hiredate emp.hiredate%TYPE; v_sal emp.sal%TYPE; v_comm emp.comm%TYPE; v_dname dept.dname%TYPE; v_disp_date VARCHAR2(10); BEGIN SELECT ename, hiredate, sal, NVL(comm, 0), dname INTO v_ename, v_hiredate, v_sal, v_comm, v_dname FROM emp e, dept d WHERE empno = p_empno AND e.deptno = d.deptno; v_disp_date := TO_CHAR(v_hiredate, 'MM/DD/YYYY'); DBMS_OUTPUT.PUT_LINE('Number : ' || p_empno); DBMS_OUTPUT.PUT_LINE('Name : ' || v_ename); DBMS_OUTPUT.PUT_LINE('Hire Date : ' || v_disp_date); DBMS_OUTPUT.PUT_LINE('Salary : ' || v_sal); DBMS_OUTPUT.PUT_LINE('Commission: ' || v_comm); DBMS_OUTPUT.PUT_LINE('Department: ' || v_dname); EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('Employee ' || p_empno || ' not found'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('The following is SQLERRM:'); DBMS_OUTPUT.PUT_LINE(SQLERRM); DBMS_OUTPUT.PUT_LINE('The following is SQLCODE:'); DBMS_OUTPUT.PUT_LINE(SQLCODE); END; -- -- Procedure that queries the 'emp' table based on -- department number and employee number or name. Returns -- employee number and name as IN OUT parameters and job, -- hire date, and salary as OUT parameters. -- CREATE OR REPLACE PROCEDURE emp_query ( p_deptno IN NUMBER, p_empno IN OUT NUMBER, p_ename IN OUT VARCHAR2, p_job OUT VARCHAR2, p_hiredate OUT DATE p_sal OUT NUMBER ) IS BEGIN SELECT empno, ename, job, hiredate, sal INTO p_empno, p_ename, p_job, p_hiredate, p_sal FROM emp WHERE deptno = p_deptno AND (empno = p_empno OR ename = UPPER(p_ename)); END; -- -- Procedure to call 'emp_query_caller' with IN and IN OUT -- parameters. Displays the results received from IN OUT and -- OUT parameters. -- CREATE OR REPLACE PROCEDURE emp_query_caller IS v_deptno NUMBER(2); v_empno NUMBER(4); v_ename VARCHAR2(10); v_job VARCHAR2(9); v_hiredate DATE; v_sal NUMBER; BEGIN v_deptno := 30; v_empno := 0; v_ename := 'Martin'; emp_query(v_deptno, v_empno, v_ename, v_job, v_hiredate, v_sal); DBMS_OUTPUT.PUT_LINE('Department : ' || v_deptno); DBMS_OUTPUT.PUT_LINE('Employee No: ' || v_empno); DBMS_OUTPUT.PUT_LINE('Name : ' || v_ename); DBMS_OUTPUT.PUT_LINE('Job : ' || v_job); DBMS_OUTPUT.PUT_LINE('Hire Date : ' || v_hiredate); DBMS_OUTPUT.PUT_LINE('Salary : ' || v_sal); EXCEPTION WHEN TOO_MANY_ROWS THEN DBMS_OUTPUT.PUT_LINE('More than one employee was selected'); WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('No employees were selected'); END; 建立函数 CREATE FUNCTION CREATE OR REPLACE FUNCTION emp_comp ( p_sal NUMBER, p_comm NUMBER ) RETURN NUMBER IS BEGIN RETURN (p_sal + NVL(p_comm, 0)) * 24; END; -- -- Function that gets the next number from sequence, 'next_empno', -- and ensures it is not already in use as an employee number. -- CREATE OR REPLACE FUNCTION new_empno RETURN NUMBER IS v_cnt INTEGER := 1; v_new_empno NUMBER; BEGIN WHILE v_cnt > 0 LOOP SELECT next_empno.nextval INTO v_new_empno FROM dual; SELECT COUNT(*) INTO v_cnt FROM emp WHERE empno = v_new_empno; END LOOP; RETURN v_new_empno; END; -- -- EDB-SPL function that adds a new clerk to table 'emp'. This function -- uses package 'emp_admin'. -- CREATE OR REPLACE FUNCTION hire_clerk ( p_ename VARCHAR2, p_deptno NUMBER ) RETURN NUMBER IS v_empno NUMBER(4); v_ename VARCHAR2(10); v_job VARCHAR2(9); v_mgr NUMBER(4); v_hiredate DATE; v_sal NUMBER(7,2); v_comm NUMBER(7,2); v_deptno NUMBER(2); BEGIN v_empno := new_empno; INSERT INTO emp VALUES (v_empno, p_ename, 'CLERK', 7782, TRUNC(SYSDATE), 950.00, NULL, p_deptno); SELECT empno, ename, job, mgr, hiredate, sal, comm, deptno INTO v_empno, v_ename, v_job, v_mgr, v_hiredate, v_sal, v_comm, v_deptno FROM emp WHERE empno = v_empno; DBMS_OUTPUT.PUT_LINE('Department : ' || v_deptno); DBMS_OUTPUT.PUT_LINE('Employee No: ' || v_empno); DBMS_OUTPUT.PUT_LINE('Name : ' || v_ename); DBMS_OUTPUT.PUT_LINE('Job : ' || v_job); DBMS_OUTPUT.PUT_LINE('Manager : ' || v_mgr); DBMS_OUTPUT.PUT_LINE('Hire Date : ' || v_hiredate); DBMS_OUTPUT.PUT_LINE('Salary : ' || v_sal); DBMS_OUTPUT.PUT_LINE('Commission : ' || v_comm); RETURN v_empno; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('The following is SQLERRM:'); DBMS_OUTPUT.PUT_LINE(SQLERRM); DBMS_OUTPUT.PUT_LINE('The following is SQLCODE:'); DBMS_OUTPUT.PUT_LINE(SQLCODE); RETURN -1; END; -- -- PostgreSQL PL/pgSQL function that adds a new salesman -- to table 'emp'. -- CREATE OR REPLACE FUNCTION hire_salesman ( p_ename VARCHAR, p_sal NUMERIC, p_comm NUMERIC ) RETURNS NUMERIC AS $$ DECLARE v_empno NUMERIC(4); v_ename VARCHAR(10); v_job VARCHAR(9); v_mgr NUMERIC(4); v_hiredate DATE; v_sal NUMERIC(7,2); v_comm NUMERIC(7,2); v_deptno NUMERIC(2); BEGIN v_empno := new_empno(); INSERT INTO emp VALUES (v_empno, p_ename, 'SALESMAN', 7698, CURRENT_DATE, p_sal, p_comm, 30); SELECT INTO v_empno, v_ename, v_job, v_mgr, v_hiredate, v_sal, v_comm, v_deptno empno, ename, job, mgr, hiredate, sal, comm, deptno FROM emp WHERE empno = v_empno; RAISE INFO 'Department : %', v_deptno; RAISE INFO 'Employee No: %', v_empno; RAISE INFO 'Name : %', v_ename; RAISE INFO 'Job : %', v_job; RAISE INFO 'Manager : %', v_mgr; RAISE INFO 'Hire Date : %', v_hiredate; RAISE INFO 'Salary : %', v_sal; RAISE INFO 'Commission : %', v_comm; RETURN v_empno; EXCEPTION WHEN OTHERS THEN RAISE INFO 'The following is SQLERRM:'; RAISE INFO '%', SQLERRM; RAISE INFO 'The following is SQLSTATE:'; RAISE INFO '%', SQLSTATE; RETURN -1; END; 建立规则 CREATE RULE CREATE OR REPLACE RULE salesemp_i AS ON INSERT TO salesemp DO INSTEAD INSERT INTO emp VALUES (NEW.empno, NEW.ename, 'SALESMAN', 7698, NEW.hiredate, NEW.sal, NEW.comm, 30); CREATE OR REPLACE RULE salesemp_u AS ON UPDATE TO salesemp DO INSTEAD UPDATE emp SET empno = NEW.empno, ename = NEW.ename, hiredate = NEW.hiredate, sal = NEW.sal, comm = NEW.comm WHERE empno = OLD.empno; CREATE OR REPLACE RULE salesemp_d AS ON DELETE TO salesemp DO INSTEAD DELETE FROM emp WHERE empno = OLD.empno; 建立触发器 CREATE TRIGGER CREATE OR REPLACE TRIGGER user_audit_trig AFTER INSERT OR UPDATE OR DELETE ON emp DECLARE v_action VARCHAR2(24); BEGIN IF INSERTING THEN v_action := ' added employee(s) on '; ELSIF UPDATING THEN v_action := ' updated employee(s) on '; ELSIF DELETING THEN v_action := ' deleted employee(s) on '; END IF; DBMS_OUTPUT.PUT_LINE('User ' || USER || v_action || TO_CHAR(SYSDATE,'YYYY-MM-DD')); END; CREATE OR REPLACE TRIGGER emp_sal_trig BEFORE DELETE OR INSERT OR UPDATE ON emp FOR EACH ROW DECLARE sal_diff NUMBER; BEGIN IF INSERTING THEN DBMS_OUTPUT.PUT_LINE('Inserting employee ' || :NEW.empno); DBMS_OUTPUT.PUT_LINE('..New salary: ' || :NEW.sal); END IF; IF UPDATING THEN sal_diff := :NEW.sal - :OLD.sal; DBMS_OUTPUT.PUT_LINE('Updating employee ' || :OLD.empno); DBMS_OUTPUT.PUT_LINE('..Old salary: ' || :OLD.sal); DBMS_OUTPUT.PUT_LINE('..New salary: ' || :NEW.sal); DBMS_OUTPUT.PUT_LINE('..Raise : ' || sal_diff); END IF; IF DELETING THEN DBMS_OUTPUT.PUT_LINE('Deleting employee ' || :OLD.empno); DBMS_OUTPUT.PUT_LINE('..Old salary: ' || :OLD.sal); END IF; END; 建立包 CREATE PACKAGE CREATE OR REPLACE PACKAGE emp_admin IS FUNCTION get_dept_name ( p_deptno NUMBER ) RETURN VARCHAR2; FUNCTION update_emp_sal ( p_empno NUMBER, p_raise NUMBER ) RETURN NUMBER; PROCEDURE hire_emp ( p_empno NUMBER, p_ename VARCHAR2, p_job VARCHAR2, p_sal NUMBER, p_hiredate DATE, p_comm NUMBER, p_mgr NUMBER, p_deptno NUMBER ); PROCEDURE fire_emp ( p_empno NUMBER ); END emp_admin; 建立包体 CREATE PACKAGE BODY -- -- Package body for the 'emp_admin' package. -- CREATE OR REPLACE PACKAGE BODY emp_admin IS -- -- Function that queries the 'dept' table based on the department -- number and returns the corresponding department name. -- FUNCTION get_dept_name ( p_deptno IN NUMBER ) RETURN VARCHAR2 IS v_dname VARCHAR2(14); BEGIN SELECT dname INTO v_dname FROM dept WHERE deptno = p_deptno; RETURN v_dname; EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('Invalid department number ' || p_deptno); RETURN ''; END; -- -- Function that updates an employee's salary based on the -- employee number and salary increment/decrement passed -- as IN parameters. Upon successful completion the function -- returns the new updated salary. -- FUNCTION update_emp_sal ( p_empno IN NUMBER, p_raise IN NUMBER ) RETURN NUMBER IS v_sal NUMBER := 0; BEGIN SELECT sal INTO v_sal FROM emp WHERE empno = p_empno; v_sal := v_sal + p_raise; UPDATE emp SET sal = v_sal WHERE empno = p_empno; RETURN v_sal; EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('Employee ' || p_empno || ' not found'); RETURN -1; WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('The following is SQLERRM:'); DBMS_OUTPUT.PUT_LINE(SQLERRM); DBMS_OUTPUT.PUT_LINE('The following is SQLCODE:'); DBMS_OUTPUT.PUT_LINE(SQLCODE); RETURN -1; END; -- -- Procedure that inserts a new employee record into the 'emp' table. -- PROCEDURE hire_emp ( p_empno NUMBER, p_ename VARCHAR2, p_job VARCHAR2, p_sal NUMBER, p_hiredate DATE, p_comm NUMBER, p_mgr NUMBER, p_deptno NUMBER ) AS BEGIN INSERT INTO emp(empno, ename, job, sal, hiredate, comm, mgr, deptno) VALUES(p_empno, p_ename, p_job, p_sal, p_hiredate, p_comm, p_mgr, p_deptno); END; -- -- Procedure that deletes an employee record from the 'emp' table based -- on the employee number. -- PROCEDURE fire_emp ( p_empno NUMBER ) AS BEGIN DELETE FROM emp WHERE empno = p_empno; END; END;
    踩1 评论0
  • 提交了问题 2018-04-25

    现在服务器里面的图片想直接迁移到oss上

  • 回答了问题 2018-04-17

    取消企业实名认证

    详细解答可以参考官方帮助文档阿里云实名认证分为个人实名认证和企业实名认证。实名认证成功后,如有必要,您也可以解除实名认证后,再变更实名认证。请根据您的实际情况,参见以下文档: 个人实名认证和企业实名认证的区别 如何进行个人实名认证? 如何进行企业实名认证? 如何变更实名认证信息? 事业单位、学校、机关、政府、社会团体如何完成实名认证? 个人实名认证如何升级为企业实名认证?
    踩1 评论0
  • 提交了问题 2018-04-14

    您好我目前申请的内存是1G,如果内存被占满,数据是否还能存储进来?

  • 提交了问题 2018-04-14

    移动推送link">名词解释

  • 回答了问题 2018-04-04

    别的域名注册商修改DNS方法

    详细解答可以参考官方帮助文档 万网云解析依托万网 19 年专业域名服务与数百万域名用户解析支持经验,目前已全面开放,支持非万网域名解析。如果您想从其他解析服务商迁移至万网云解析,解析平滑迁移的方案,按照如下步骤操作,可平滑迁移,解析无影响。1. 云解析控制台添加域名。2. 云解析控制台添加解析记录。(务必保证在云解析DNS处增加的解析记录 和原解析服务商处的解析记录保持一致,且48小时内不要做任何修改)3. 解析记录在云解析添加完毕后,可在验证下在云解析DNS的权威是否已生效,验证方法如下:在输入以下命令后,如果能正常返回您解析记录的IP地址,则代表在云解析权威DNS已生效windows:nslookup -qt=记录类型 域名 阿里云DNSlinux:dig 类型 域名 @阿里云DNS4. 确认上条无问题,则到域名注册商处修改DNS为阿里云DNS 以下为部分域名注册商修改 DNS 的方法,经验内容仅供参考。万网域名修改DNS方法     点此查看GoDaddy 修改 DNS 方法   点此查看易名中国修改 DNS 方法     点此查看爱名网修改 DNS 方法         点此查看西部数码修改 DNS 方法     点此查看中国数据修改 DNS 方法     点此查看新网互联修改 DNS 方法     点此查看联动天下修改 DNS 方法     点此查看新网修改 DNS 方法            点此查看如果您的域名不是通过以上注册商注册,请到该注册商咨询如何修改 DNS。温馨提示:阿里云解析 DNS 自动分配,不同时间添加的域名所分配的DNS有可能不同。您需要登录阿里云/万网【管理控制台】— 点击主导航【产品与服务】—【云解析】,进入域名解析列表页,添加该域名后,点击该域名方可进入域名控制台;在【域名控制台】—【域名解析】— 点击【产品详情】,即可查看该域名对应的 DNS服务器。注意:修改 DNS 后,解析一般最长需要 24~ 48 小时生效,请您耐心等待! 如果问题还未能解决,请联系售后技术支持。  
    踩1 评论0
  • 回答了问题 2018-03-26

    我买了88元一年的基础版云解析,但是一直是显示永久免费版的。

    详细解答可以参考官方帮助文档  更多内容可查看《云解析(企业版)产品文档》1、 免费版用户不支持将 DNS 修改为 vip1.alidns.com/vip2.alidns.com2、非万网域名,非阿里云云解析企业版用户,即使在注册商处修改成 vip1.alidns.com/vip2.alidns.com,该 VIPDNS 也不会生效,解析也不会生效。
    踩1 评论0
  • 提交了问题 2018-03-12

    数据库无法导出

  • 提交了问题 2018-03-08

    主机怎么用

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息