【Oralce】oralce字符窜转变为数组

本文介绍了一个用于验证某个区域值是否被另一个区域值集合包含的PL/SQL函数。该函数通过解析输入的区域字符串,并逐一比较来确定是否满足包含条件。

CREATE OR REPLACE FUNCTION validate_zone_contain (zone_value VARCHAR2,zone1 VARCHAR2,delimiter varchar2)
   RETURN BOOLEAN IS 
  v_flag BOOLEAN; 
  v_zone VARCHAR2(500);
  v_zone1 VARCHAR2(500);
  i NUMBER := 1;
  c_i NUMBER := 1;
  j NUMBER := 1;
  k NUMBER := 1;
  c_k  NUMBER := 1;
  h NUMBER := 1;
  v_zone_value NUMBER;
  v_zone_start NUMBER;
  v_zone_end  NUMBER;
BEGIN
  -- 区域
  v_zone := RTrim(LTrim(zone_value, delimiter), delimiter);
  v_zone1 := RTrim(LTrim(zone1, delimiter), delimiter);
  v_flag := TRUE;
  LOOP
    i := InStr(v_zone, delimiter, j);
    c_i := InStr(v_zone, delimiter, j);
    IF v_flag AND i> 0 THEN
      v_zone_value := to_number(Trim(SubStr(v_zone, j, i-j)));
      j := i+1;
        LOOP
            k := InStr(v_zone1, delimiter, h);
            -- 多个值时 K > 0 (112,113)
            IF k>0 THEN
              v_zone_start := to_number(Trim(SubStr(v_zone1, h, k-h)));
              v_zone_end := to_number(Trim(SubStr(v_zone1, h, k-h)))+100;
                  IF v_zone_value < v_zone_start OR v_zone_value > v_zone_end THEN
                      v_flag := FALSE;
                  END IF;
              k := h+1;
            ELSIF c_k >0 AND k = 0  THEN -- c_k  避免k遍历最后一个报错
              v_zone_start := to_number(TRIM(v_zone1));
              v_zone_end   := v_zone_start+100;
                  IF v_zone_value < v_zone_start OR v_zone_value > v_zone_end THEN
                      v_flag := FALSE;
                  END IF;
            END IF;
            EXIT WHEN k=0;
          END LOOP;
    ELSIF v_flag AND c_i > 0 AND  i= 0 THEN
      v_zone_value :=  to_number(v_zone);
       LOOP
            k := InStr(v_zone1, delimiter, h);
            IF k>0 THEN
              v_zone_start := to_number(Trim(SubStr(v_zone1, h, k-h)));
              v_zone_end := to_number(Trim(SubStr(v_zone1, h, k-h)))+100;
                  IF v_zone_value < v_zone_start OR v_zone_value > v_zone_end THEN
                     v_flag := FALSE;
                  END IF;
              k := h+1;
            ELSIF c_k >0 AND k = 0  THEN
              v_zone_start := to_number(TRIM(v_zone1));
              v_zone_end   := v_zone_start+100;
                  IF v_zone_value < v_zone_start OR v_zone_value > v_zone_end THEN
                      v_flag := FALSE;
                  END IF;
            END IF;
            EXIT WHEN k=0;
          END LOOP;     
    END IF;
    EXIT WHEN i=0 OR v_flag = FALSE;
  END LOOP;
  RETURN v_flag;
END;

FANUC机器RSR与PSN启动方式 FANUC机器RSR与PSN启动方式全文共55页,当前为第1页。FANUC机器RSR与PSN启动方式全文共55页,当前为第1页。 FANUC机器RSR与PSN启动方式全文共55页,当前为第1页。 FANUC机器RSR与PSN启动方式全文共55页,当前为第1页。 Fanuc机器PNS程序和RSR程序启动方式 这里主要了解Fanuc机器的自动运行条件,选择PNS、RSR程序名的启动方式,通过外部IO选择不同PNS和RSR程序并启动运行。具体的一些操作步骤和过程,需要去机器上面进行验证。 一、自动运行条件和系统变量设定 1、Fanuc机器自动运行条件设定 (1)TP示教器开关置于OFF; (2)通过示教器上step切换为连续运行状态; (3)控制柜钥匙开关打到AUTO模式; (4)专用信号UI[1]- UI[3] 都设定为ON; (5)专用信号UI[8] *ENBL 为ON,切换开关; (6)在设定当中,设定自动模式为REMOTE(远程模式) Menu菜单——>0 next下一页——>6 system系统——>F1 type类型——>config配置——>Remote/Local setup选择远程模式; (7)系统变量$RMT_MASTER为0(默认值是0),即menu菜单——>0 next下一页——>6 system系统——>F1 type类型——>Variables变量——>$RMT_MASTER设为0 FANUC机器RSR与PSN启动方式全文共55页,当前为第2页。FANUC机器RSR与PSN启动方式全文共55页,当前为第2页。说明:系统变量$RMT_MASTER定义下列远端设备 FANUC机器RSR与PSN启动方式全文共55页,当前为第2页。 FANUC机器RSR与PSN启动方式全文共55页,当前为第2页。 0:外围设备 1:显示器/键盘(CRT/KB) 2:主控计算机 3:无外围设备(无遥控装置) 2、自动运行功能说明 自动运转是从遥控装置通过外围设备I/O输入来启动程序的一种功能,具有如下功能。 (1)机器启动请求(RSR)功能,根据机器启动请求信号(RSR 1~8 输入)选择并启动程序。程序处在执行中或暂停中的情况下,所选程序进入等待状态,等待当前执行中的程序结束后又被启动。 (2)程序号码选择(PNS)功能,根据程序号码选择信号(PNS 1~8 输入、PNSTROBE 输入)选择程序。程序处在暂停中或执行中的情况下,忽略该信号。 (3)自动运转启动信号(PROD_START 输入),从第1行启动当前所选的程序。程序处在暂停中或执行中的情况下,忽略该信号。 (4) 通过循环停止信号(CSTOPI 输入)来结束当前执行中的程序。 FANUC机器RSR与PSN启动方式全文共55页,当前为第3页。FANUC机器RSR与PSN启动方式全文共55页,当前为第3页。A:若系统设定菜单"CSTOPI 输入后,程序强制结束"设定为"无效",则在程序结束之前执行当前执行中的程序,而后强制结束该程序。通过RSR来解除处在待命状态的程序。(标准设定) FANUC机器RSR与PSN启动方式全文共55页,当前为第3页。 FANUC机器RSR与PSN启动方式全文共55页,当前为第3页。 B:若系统设定菜单"CSTOPI 输入后,程序强制结束"设定为"有效",则立即强制结束当前执行中的程序。通过RSR来解除处在待命状态的程序。 (5)通过外部启动信号(START 输入)来启动当前暂停中的程序。 A:若系统设定菜单"外部 START 信号(暂停状态)"设定为"无效",则从当前所选的程序的当前行启动程序。同时启动暂停中的程序。(标准设定) B:若系统设定菜单"外部 START 信号(暂停状态)"设定为"有效",则只能启动当前暂停中的程序。没有暂停中的程序的情况下,忽略该信号。 3、配置系统选项含义 (1)配置选项路径 Menu菜单——>下一页——>系统——>配置:进入配置选项画面,如下图片: FANUC机器RSR与PSN启动方式全文共55页,当前为第4页。FANUC机器RSR与PSN启动方式全文共55页,当前为第4页。 FANUC机器RSR与PSN启动方式全文共55页,当前为第4页。 FANUC机器RSR与PSN启动方式全文共55页,当前为第4页。 (2)配置选项各项设定含义 系统设定菜单上汇总了系统设置时所应该设定的几个重要条目。可以在系统设定画面上参照和设定如下选项,以下是设定各项图片: 选项1——9: FANUC机器RSR与PSN启动方式全文共55页,当前为第5页。FANUC机器RSR与PSN启动方式全文共55页,当前为第5页。 FANUC机器RSR与PS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值