首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏SDNLAB

    ODL应用开发之MD-SAL中级教程

    比如我们的应用都是链接在MD—SAL上,所以必须依赖MD-SAL。 config subsystem在MD-SAL之外而且被用来提供把应用接入MD-SAL的功能。 我们其中依赖了一个MD-SAL的服务 binding-aware-broker,这个跟MD-SAL的数据存取的datastore有关,我后面会讲到如何去用。 比如我们的应用都是链接在MD—SAL上,所以必须依赖MD-SAL。 config subsystem在MD-SAL之外而且被用来提供把应用接入MD-SAL的功能。

    3.4K80发布于 2018-04-03
  • 来自专栏SDNLAB

    OpenDaylight控制器MD-SAL解析

    从大的结构上来看,MD-SAL与AD-SAL并没有太多的差别,都是由一些南向/北向的Plugin(SB/NB-Plugin)以及中间的适配层(SAL)组成。 MD-SAL与AD-SAL设计结构上的差别主要如下: 1.不同于AD-SAL,MD-SAL引入了Data Store的概念,在其提供的Data Store中,存储由北向Application和南向Device 图2-1 MD-SAL与AD-SAL的架构设计差别示意 我们再以图2-1为例来具体说明AD-SAL与MD-SAL的差别,以更好地理解MD-SAL新引进的一些理念: 在图2-1中,NB-Plugin1通过静态绑定访问 AD-SAL中原有的消息路由功能在MD-SAL中依然存在。 三.MD-SAL架构 MD-SAL内部实现的抽象架构如图3-1所示。 图3-1 MD-SAL架构示意图 四.MD-SAL Plugin生命周期 MD-SAL本身不提供任何的Model,所有的Model都是由对应的Plugin来提供。

    2.1K100发布于 2018-04-03
  • 来自专栏SDNLAB

    SDNLAB技术分享(二):从Toaster示例初探ODL MD-SAL架构

    为了有个比较,我们先设想一下如果不利用MD-SAL框架,如何实现? 见上图的实现步骤: 1)所有的面包机厂商,按照MD-SAL中约定好的“面包机南向接口协议”,实现面包机和MD-SAL框架的交互。 2)面包机APP应用程序通过调用MD-SAL提供的北向接口,实现APP和MD-SAL框架的交互。 3)MD-SAL框架内部完成北向接口和南向接口之间的对接。 绿色部分是ODL的 MD-SAL框架内部提供的数据存储服务, Provider会向MD-SAL框架中注册可Provider Bundler可以提供的服务: ? 胖子@南京 不部署到控制器里面,单独的bundle可以吗 不可以,要依赖ODL的MD-SAL框架。需要调用ODL MD-SAL的数据服务,所以要部署在一起。

    1.2K100发布于 2018-04-03
  • 来自专栏SDNLAB

    SDN开发笔记(四):md-sal应用程序开发

    win7环境)、SDN控制器的使用(ubuntu环境搭建、controller使用、mininet的使用)和ODL源码编译生成发行版控制器之后,终于有时间写第4篇文章,本章主要讲如何开发一个基于MD-SAL

    1.6K50发布于 2018-04-02
  • 来自专栏韩曙亮的移动开发专栏

    【Android 逆向】x86 汇编 ( add sub mul div 数值运算指令 | xor not sal sar shl shr 位运算指令 )

    文章目录 一、add / sub / mul / div 数值运算指令 二、xor / not / sal / sar / shl / shr 位运算指令 总结 一、add / sub / mul / 减法运算指令 , 运算结果存储到操作数 1 中 ; mul : 乘法运算指令 , 运算结果存储到操作数 1 中 ; div : 除法运算指令 , 运算结果存储到操作数 1 中 ; 二、xor / not / sal / sar / shl / shr 位运算指令 ---- 位运算指令 : xor : 异或运算指令 ; not : 取反运算指令 ; sal : 算术左移指令 ; sar : 算术右移指令 ; shl pusha , popa ret , retn 返回指令 , set 设置目标值指令 add , sub , mul , div 数值运算指令 xor , not , shl , shr , sal

    1.7K10编辑于 2023-03-29
  • 来自专栏乐沙弥的世界

    PL/SQL --> 流程控制

    DECLARE v_empid emp.empno%TYPE; v_job emp.job%TYPE; v_old_sal emp.sal%TYPE; v_new_sal emp.sal%TYPE DECLARE v_empid emp.empno%TYPE; v_job emp.job%TYPE; v_old_sal emp.sal%TYPE; v_new_sal emp.sal%TYPE ='CLERK' THEN v_new_sal:=v_old_sal*1.1; ELSE v_new_sal:=v_old_sal*1.08; END IF; UPDATE emp SET sal DECLARE v_empid emp.empno%TYPE; v_job emp.job%TYPE; v_old_sal emp.sal%TYPE; v_new_sal emp.sal%TYPE :=v_old_sal*1.1; WHEN v_job='SALESMAN' THEN v_new_sal:=v_old_sal*1.08; ELSE v_new_sal:=v_old_sal*

    59730发布于 2018-08-07
  • 来自专栏IT技术订阅

    pl/sql存储过程及实用案例(建议收藏)

    定义和列的类型保持一致 v_sal emp.sal%type;-- 和emp表sal列的类型保持一致 2. %type,v_empsal EMP.SAL%type); --变量名是v_name_sal 类型是type_emp_name_sal v_name_sal case when v_temp_empno_sal.v_sal > 3000 then update emp set sal = sal * 0.6 where empno = v_temp_empno_sal.v_empno; when v_temp_empno_sal.v_sal > 2000 and v_temp_empno_sal.v_sal when v_temp_empno_sal.v_sal > 1500 and v_temp_empno_sal.v_sal <= 2000 then update emp set

    1.1K40编辑于 2022-05-11
  • 来自专栏全栈程序员必看

    oracle最强大函数之一decode函数的使用[通俗易懂]

    ‘low sal’))) FROM emp 输出结果 SMITH 800 low sal ALLEN 1600 low sal WARD 1250 low sal JONES 2975 low sal MARTIN 1250 low sal BLAKE 2850 low sal CLARK 2450 low sal SCOTT 3000 mid sal KING 5000 high sal TURNER 1500 low sal ADAMS 1100 low sal JAMES 950 low sal FORD 3000 mid sal MILLER 1300 low sal 4:利用decode实现表或者试图的行列转换 ,SAL,0)) ALLEN, SUM(DECODE(ENAME,’WARD’,SAL,0)) WARD, SUM(DECODE(ENAME,’JONES’,SAL

    1.1K20编辑于 2022-09-16
  • 来自专栏知识学习

    常用sql查询语句

    SQL>SELECT ename, sal13+nvl(comm,0) year_sal FROM emp; (year_sal为别名,可按别名排序) SQL>SELECT * FROM emp WHERE (sal) from emp; SQL>SELECT * FROM emp where sal=(SELECT MAX(sal) from emp)); SQL>SELEC COUNT(*) FROM BY deptno; SQL>SELECT deptno, job, AVG(sal),MIN(sal) FROM emp group by deptno,job having AVG(sal)<2000 5.3 使用ALL SQL>SELECT ename,sal,deptno FROM emp WHERE sal> ALL (SELECT sal FROM emp WHERE deptno=30); 或SQL>SELECT ename,sal,deptno FROM emp WHERE sal> (SELECT MAX(sal) FROM emp WHERE deptno=30);查询工资比部门号为

    1.5K10编辑于 2024-10-15
  • 来自专栏开源部署

    Oracle 11g LogMiner解析redo日志

    EMP" set "SAL" = '0' where "EMPNO" = '7369' and "SAL" = '800' and ROWID = 'AAAR3xAAEAAAACXAAA';  update EMP" set "SAL" = '0' where "EMPNO" = '7499' and "SAL" = '1600' and ROWID = 'AAAR3xAAEAAAACXAAB';  update EMP" set "SAL" = '0' where "EMPNO" = '7900' and "SAL" = '950' and ROWID = 'AAAR3xAAEAAAACXAAL';  update EMP" set "SAL" = '800' where "EMPNO" = '7369' and "SAL" = '0' and ROWID = 'AAAR3xAAEAAAACXAAA';  update EMP" set "SAL" = '1300' where "EMPNO" = '7934' and "SAL" = '0' and ROWID = 'AAAR3xAAEAAAACXAAN'; 6.9、

    1.2K10编辑于 2022-08-17
  • 来自专栏mukekeheart的iOS之旅

    数据库操作要点知识整理

    *12 as annual_sal from emp;与select ename,sal*12 "annual sal" from emp;区别,加双引号保持原大小写。 *12 annual_sal from emp         where ename not like '_A%' and sal>800         order by sal desc; select sal from emp where sal>888.88 无错.但         select sal from emp where sal>$1,250,00;         select ename,sal from emp where sal>(select avg(sal) from emp);        查找每个部门挣钱最多的那个人的名字.        from emp where sal not in(        select distinct e1.sal from emp e1 join emp e2 on (e1.sal<e2.sal)

    80290发布于 2018-02-27
  • 来自专栏全栈程序员必看

    oracle强化练习之分组函数[通俗易懂]

    显示平均工资为>2000的职位 select job,avg(sal) from emp group by job having avg(sal)>2500; 2. (sal)>3000; 3. 找每一个部门的最高和最低的工资 Select deptno,max(sal),min(sal) From emp group by deptno; 4. ,max(sal),min(sal) from emp where job is notnull group by job,deptno; 5. 最低工资及工资的和 select avg(sal),max(sal),min(sal),sum(sal) from emp where job like ‘%MAN%’; 6.

    53920编辑于 2022-07-10
  • 来自专栏小麦苗的DB宝专栏

    【DB笔试面试637】在Oracle中,直方图使用示例。

    DUAL CONNECT BY LEVEL<=10000; UPDATE T_ST_20170604_LHR SET SAL=5000 WHERE SAL BETWEEN 6 AND 9995; - -9990 CREATE INDEX T_ST_20170604_LHR_SAL ON T_ST_20170604_LHR(SAL); EXEC DBMS_STATS.GATHER_TABLE_STATS 这种显示说明列SAL没有直方图信息,从DBA_TAB_COL_STATISTICS的HISTOGRAM列值为NONE也说明列SAL没有直方图。 SYS@orclasm > SELECT SAL ENDPOINT_VALUE,SUM(COUNT(*)) OVER(ORDER BY SAL RANGE UNBOUNDED PRECEDING) ENDPOINT_NUMBER 下面重新对列SAL收集直方图,让Bucket的数量为9,小于SAL列的DISTINCT的值,那么Oracle会收集高度直方图。

    1.9K20发布于 2019-09-29
  • 来自专栏Java架构师必看

    Oracle学习(四):组函数

    1.知识点:可以对照下面的录屏进行阅读 SQL> --组函数类型:avg,count,max,min,sum SQL> --工资总额 SQL> select sum(sal) from emp; SQL> --员工人数 SQL> select count(*) from emp; SQL> --平均工资 SQL> select sum(sal)/count(*) 一, avg(sal) 二 from *),count(nvl(comm,0)) from emp; --结果相同,count(comm)统计所有结果 SQL> --求各个部门的平均工资 SQL> select deptno,avg(sal group by子句中 SQL> --包含在group by子句中的列不必包含在select列表中 SQL> --按部门,不同的职位统计平均工资 SQL> select deptno,job,avg(sal SQL> select deptno,avg(sal) 2 from emp 3 group by deptno 4 having deptno=10; SQL> --SQL优化

    1.4K20发布于 2021-05-17
  • 来自专栏sunsky

    PHP parent 的注意点

    php class employee{ protected $sal=3000; public function getSal(){ $this->sal = $this->sal + 1200; return $this->sal ; } } class Manager extends employee $this->sal = $this->sal + 1500; return $this->sal ; } } $emp = new employee() > 程序运行结果: 1 PHP 5.2.9 2 5000 3 parent's $sal 3000 打开zend调试状态看看,内存中的情况。注意最下面,有两个$sal 。 > 程序运行结果: 1 PHP 5.2.9 2 3000 将父类的属性$sal 改成 protected ,子类重写了父类的属性。在内存中只有一个 $sal 。 <?

    85220发布于 2020-08-20
  • 来自专栏大数据学习笔记

    Oracle分析函数

    E.DEPTNO, MAX(E.SAL) OVER(PARTITION BY E.DEPTNO) MAX_SAL FROM TEMP_EMP E; 说明: (1)聚合函数用group , SUM(E.SAL) OVER(PARTITION BY E.DEPTNO) SUM_SAL FROM TEMP_EMP E; 3、查询各员工的工资,附带部门按姓名排序的工资加和 (2)窗口指定到该分组中的第一行数据到当前行 4、LAG函数 SELECT E.DEPTNO, E.SAL A, LAG(E.SAL,1,E.SAL) OVER(ORDER N行的数据作为独立的一列 6、LAG函数和LEAD函数的NULL SELECT E.DEPTNO, E.SAL A, LAG(E.SAL, 1, NULL) OVER(ORDER , E.SAL, E.DEPTNO, RANK() OVER(PARTITION BY E.DEPTNO ORDER BY E.SAL) ERANK FROM TEMP_EMP

    1.1K10编辑于 2022-05-06
  • 来自专栏Postgresql源码分析

    Oracle中PLSQL函数传递游标的四种方式(实例)

    ('factor = ' || factor); DBMS_OUTPUT.PUT_LINE('sal = ' || sal); DBMS_OUTPUT.PUT_LINE('sal_multiple = 12000 factor = 3 sal = 7000 sal_multiple = 14000 factor = 4 sal = 8000 sal_multiple = 16000 2 使用sys_refcursor = 6000 sal_multiple = 12000 factor = 3 sal = 7000 sal_multiple = 14000 factor = 4 sal = 8000 sal_multiple = 12000 factor = 3 sal = 7000 sal_multiple = 14000 factor = 4 sal = 8000 sal_multiple = 16000 3 使用包定义的 = 6000 sal_multiple = 12000 factor = 3 sal = 7000 sal_multiple = 14000 factor = 4 sal = 8000 sal_multiple

    86020编辑于 2022-09-23
  • 来自专栏Zkeq

    MySQL | 实操:表的内连接

    SELECT e2.empno,e2.ename,e2.sal FROM t_emp e1 JOIN t_emp e2 WHERE e2.sal>=AVG(e1.sal); SELECT e.empno ,e.ename,e.sal FROM t_emp e JOIN (SELECT AVG(sal) avg FROM t_emp) t ON e.sal>=t.avg; 查询 RESEARCH 部门的 SELECT COUNT(*),MAX(e.sal),MIN(e.sal),AVG(e.sal), AVG(DATEDIFF(NOW(),e.hiredate)/365) FROM t_emp e JOIN SELECT COUNT(*),MAX(e.sal),MIN(e.sal),AVG(e.sal), FLOOR(AVG(DATEDIFF(NOW(),e.hiredate)/365)) FROM t_emp SELECT e.job, MAX(e.sal+IFNULL(e.comm,0)), MIN(e.sal+IFNULL(e.comm,0)), AVG(e.sal+IFNULL(e.comm,0)),

    3K10编辑于 2022-05-18
  • 来自专栏从小白开始修炼

    【MySql】复合查询

    select ename,sal,comm,sal*12+ifnull(comm,0) 年薪 from emp order by 年薪 desc; 显示工资最高的员工的名字和工作岗位 select * from emp where sal=(select max(sal) from emp); 显示工资高于平均工资的员工信息 select * from emp where sal > (select avg(sal) from emp); 显示每个部门的平均工资和最高工资 select deptno, max(sal)最高,format(avg(sal),2) 平均 from emp group sal)<2000; -- select deptno,avg(sal) 平均工资 from emp group by deptno having 平均工资<2000; 显示每种岗位的雇员总数,平均工资 > (select max(sal) from emp where deptno=30); 第二种做法: select * from emp where sal>all(select distinct

    1.1K30编辑于 2023-10-15
  • 来自专栏乐沙弥的世界

    导入导出 Oracle 分区表数据

    DATE NOT NULL, sal_id NUMBER NOT NULL, sal_row NUMBER(12) NOT NULL) partition by range(sal_date) ( partition sal_11 values less than(to_date('2012-01-01','YYYY-MM-DD')) , partition sal_12 values sal_15 values less than(to_date('2016-01-01','YYYY-MM-DD')) , partition sal_16 values less than(to_date ---------- 2873 SQL> select * from tb_pt partition(sal_12) where rownum < 3; SAL_DATE SAL_ID SAL_ROW _11 300 rows exported . . exporting partition SAL_12 366 rows exported . . exporting partition SAL_

    2.7K50发布于 2018-08-14
领券