xlam

window.parent.postMessage('Hello from iframe', '*'); https://forms.gle/gsU62hinEJeyffV78


CREATE TABLE prs_test_log (
    id              NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
    username        VARCHAR2(100),
    os_user         VARCHAR2(100),
    host            VARCHAR2(100),
    ip_address      VARCHAR2(50),
    module_name     VARCHAR2(100),
    action_name     VARCHAR2(100),
    log_date        DATE DEFAULT SYSDATE
);

CREATE OR REPLACE PACKAGE prs_test AS
  PROCEDURE log_call_proc;
END prs_test;
/

CREATE OR REPLACE PACKAGE BODY prs_test AS

  PROCEDURE log_call_proc IS
    v_username   VARCHAR2(100);
    v_os_user    VARCHAR2(100);
    v_host       VARCHAR2(100);
    v_ip_address VARCHAR2(50);
    v_module     VARCHAR2(100);
    v_action     VARCHAR2(100);
  BEGIN
    -- получаем данные о сессии
    SELECT 
      SYS_CONTEXT('USERENV','SESSION_USER'),
      SYS_CONTEXT('USERENV','OS_USER'),
      SYS_CONTEXT('USERENV','HOST'),
      SYS_CONTEXT('USERENV','IP_ADDRESS'),
      SYS_CONTEXT('USERENV','MODULE'),
      SYS_CONTEXT('USERENV','ACTION')
    INTO
      v_username, v_os_user, v_host, v_ip_address, v_module, v_action
    FROM dual;

    -- сохраняем в лог
    INSERT INTO prs_test_log (
      username, os_user, host, ip_address, module_name, action_name
    ) VALUES (
      v_username, v_os_user, v_host, v_ip_address, v_module, v_action
    );

    -- фиксируем запись (убери, если хочешь, чтобы коммит делал вызывающий)
    COMMIT;
  EXCEPTION
    WHEN OTHERS THEN
      -- откат в случае ошибки и повторный выброс ошибки
      ROLLBACK;
      RAISE;
  END log_call_proc;

END prs_test;
/


function ConvertStringToUTF8(str)
{
    str = str.replace(/\r\n/g, "\n");

    var utftext = [];
    // Добавляем BOM в начало
    utftext.push(0xEF, 0xBB, 0xBF);

    var c:Number = 0;

    for (var n = 0; n < str.length; n++) {

function sleepSync(ms) {
  const end = Date.now() + ms;
  while (Date.now() < end) {} // блокирует всё
}

console.log("До паузы");
sleepSync(2000); // блокирует 2 секунды
console.log("После паузы");


(?:.*/)?([^/]+?)(?:\.[^.]+)?$
(?:.*/)?([^/]+)$

import sys
import re
from datetime import datetime

# Функция для анализа логов
def analyze_logs(file_path, time_threshold):
    time_format = "%Y-%m-%d %H:%M:%S"
    log_entries = []

    try:
        with open(file_path, 'r', encoding='utf-8') as file:
            for line in file:
                match = re.search(r'(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})', line)
                if match:
                    log_entries.append((match.group(1), line.strip()))

        if not log_entries:
            print("Ошибка: В файле не найдено строк с временем.")
            return

        for i in range(1, len(log_entries)):
            time1 = datetime.strptime(log_entries[i-1][0], time_format)
            time2 = datetime.strptime(log_entries[i][0], time_format)
            delta = (time2 - time1).total_seconds()

            if delta > time_threshold:
                print(log_entries[i-1][1])
                print(log_entries[i])
                print(f"--- Разрыв: {int(delta)} секунд ---\n")

    except FileNotFoundError:
        print(f"Ошибка: файл '{file_path}' не найден.")
    except Exception as e:
        print(f"Произошла ошибка: {e}")

if __name__ == "__main__":
    if len(sys.argv) != 3:
        print("Использование: python script.py <путь к файлу> <пороговое значение в секундах>")
    else:
        try:
            file_path = sys.argv[1]
            threshold = int(sys.argv[2])
            analyze_logs(file_path, threshold)
        except ValueError:
            print("Ошибка: Пороговое значение должно быть целым числом.")



SELECT e.ROW_ID,
       TO_CHAR(e.CREATED, 'dd.mm.yyyy HH24:MI:SS')||'|'||
       TO_CHAR(e.LAST_UPD, 'dd.mm.yyyy HH24:MI:SS')||'|'||
       e.ASSET_NUM||'|'||c2.LGL_NUMMBER||'|'||c2.LGL_YOUR_NUMBER||'|'||
       TO_CHAR(c4.DOC_ISSUE_DATE, 'dd.mm.yyyy')||'|'||
       COALESCE(s4.VAL, s5.VAL) result
FROM siebel.s_asset e
INNER JOIN siebel.s_asset_x s2 ON e.ROW_ID = s2.ROW_ID
INNER JOIN siebel.CX_LEGAL_WORK c2 ON e.ASSET_ID = c2.ASSET_ID AND c2.LGL_NUMBER IS NOT NULL
INNER JOIN (
    SELECT c3.LEGAL_ID, 
           d.*,
           ROW_NUMBER() OVER (PARTITION BY c3.LEGAL_ID ORDER BY d.DOC_ISSUE_DATE DESC) AS rn
    FROM siebel.CX_DOC_LEGAL c3
    INNER JOIN siebel.CX_ASSET_DOC d ON c3.DOC_ID = d.ROW_ID
    WHERE d.DOC_TYPE = 'Executive inscription'
) d ON c2.ROW_ID = d.LEGAL_ID AND d.rn = 1
INNER JOIN siebel.CX_DOCUMENT c4 ON d.ROW_ID = c4.ROW_ID
LEFT JOIN siebel.S_LST_OF_VAL s3 ON c4.DOC_TYPE = s3.TYPE 
                                AND s3.LANG_ID = 'RUS' 
                                AND s3.ACTIVE_FLG = 'Y'
LEFT JOIN siebel.S_LST_OF_VAL s4 ON c4.DOC_STATUS = s4.TYPE 
                                AND s4.LANG_ID = 'RUS' 
                                AND s4.ACTIVE_FLG = 'Y'
LEFT JOIN siebel.S_LST_OF_VAL s5 ON c4.DOC_STATUS = s5.TYPE 
                                AND s5.LANG_ID = 'RUS'
WHERE e.STATUS_CD = 'Active'
  AND e.NAME IS NOT NULL;


WITH ranked_data AS (
    SELECT
        t1.*,
        ROW_NUMBER() OVER (PARTITION BY t1.id ORDER BY t2.date_column DESC) AS rn
    FROM
        table1 t1
        INNER JOIN table2 t2 ON t1.id = t2.id
)
SELECT *
FROM ranked_data
WHERE rn = 1;



Текст




DELETE FROM ваша_таблица t
WHERE EXISTS (
    SELECT 1
    FROM (
        SELECT CRED_ID, MAX(REP_DATE) AS max_rep_date
        FROM ваша_таблица
        WHERE BATCH_ID = :batch_id
        GROUP BY CRED_ID
    ) max_dates
    WHERE t.CRED_ID = max_dates.CRED_ID
      AND t.REP_DATE < max_dates.max_rep_date
      AND t.BATCH_ID = :batch_id
);



SELECT VALUE 
FROM NLS_SESSION_PARAMETERS
WHERE PARAMETER = 'NLS_NUMERIC_CHARACTERS';


SELECT CASE 
         WHEN REGEXP_LIKE(column_name, '^[-+]?[0-9]+(,[0-9]+)?$') THEN 
           TO_NUMBER(REPLACE(column_name, ',', '.'))
         ELSE 
           NULL
       END AS safe_number
FROM table_name;


const url = "https://site.com/bucket/key1/ke2/file.lnk";
const bucketName = "bucket/";
const index = url.indexOf(bucketName);

if (index !== -1) {
    const result = url.substring(index + bucketName.length);
    console.log(result); // Выведет "key1/ke2/file.lnk"
} else {
    console.log("bucket не найден в URL");
}



const mapping = {
    'Y': 1,
    'N': 0
};

const value = 'Y';
const mappedValue = mapping[value]; // mappedValue будет 1
console.log(mappedValue);

success: function(data) {
    // Предположим, что `data.result` содержит массив объектов, и вам нужно
    // использовать поле `name` для отображения, а `id` для значения
    var transformedData = data.result.map(function(item) {
        return {
            label: item.name,  // поле для отображения в выпадающем списке
            value: item.id     // значение, которое будет установлено в поле
        };
    });
    
    response(transformedData);
}


IIf([Calc Contract Overall Sum] <= 100000, 4000, 0)
IIf([Calc Contract Overall Sum] > 100000 AND [Calc Contract Overall Sum] <= 300000, 4000 + 0.03 * ([Calc Contract Overall Sum] - 100000), 0)
IIf([Calc Contract Overall Sum] > 300000 AND [Calc Contract Overall Sum] <= 500000, 10000 + 0.025 * ([Calc Contract Overall Sum] - 300000), 0)
IIf([Calc Contract Overall Sum] > 500000 AND [Calc Contract Overall Sum] <= 1000000, 15000 + 0.02 * ([Calc Contract Overall Sum] - 500000), 0)
IIf([Calc Contract Overall Sum] > 1000000 AND [Calc Contract Overall Sum] <= 3000000, 25000 + 0.01 * ([Calc Contract Overall Sum] - 1000000), 0)
IIf([Calc Contract Overall Sum] > 3000000 AND [Calc Contract Overall Sum] <= 8000000, 45000 + 0.007 * ([Calc Contract Overall Sum] - 3000000), 0)
IIf([Calc Contract Overall Sum] > 8000000 AND [Calc Contract Overall Sum] <= 24000000, 80000 + 0.0035 * ([Calc Contract Overall Sum] - 8000000), 0)
IIf([Calc Contract Overall Sum] > 24000000 AND [Calc Contract Overall Sum] <= 50000000, 136000 + 0.003 * ([Calc Contract Overall Sum] - 24000000), 0)
IIf([Calc Contract Overall Sum] > 50000000 AND [Calc Contract Overall Sum] <= 100000000, 214000 + 0.002 * ([Calc Contract Overall Sum] - 50000000), 0)
IIf([Calc Contract Overall Sum] > 100000000, IIf(314000 + 0.0015 * ([Calc Contract Overall Sum] - 100000000) > 900000, 900000, 314000 + 0.0015 * ([Calc Contract Overall Sum] - 100000000)), 0)

SELECT 
    amount,
    CASE
        WHEN amount <= 100000 THEN 4000
        WHEN amount BETWEEN 100001 AND 300000 THEN 4000 + 0.03 * (amount - 100000)
        WHEN amount BETWEEN 300001 AND 500000 THEN 10000 + 0.025 * (amount - 300000)
        WHEN amount BETWEEN 500001 AND 1000000 THEN 15000 + 0.02 * (amount - 500000)
        WHEN amount BETWEEN 1000001 AND 3000000 THEN 25000 + 0.01 * (amount - 1000000)
        WHEN amount BETWEEN 3000001 AND 8000000 THEN 45000 + 0.007 * (amount - 3000000)
        WHEN amount BETWEEN 8000001 AND 24000000 THEN 80000 + 0.0035 * (amount - 8000000)
        WHEN amount BETWEEN 24000001 AND 50000000 THEN 136000 + 0.003 * (amount - 24000000)
        WHEN amount BETWEEN 50000001 AND 100000000 THEN 214000 + 0.002 * (amount - 50000000)
        WHEN amount > 100000000 THEN LEAST(314000 + 0.0015 * (amount - 100000000), 900000)
    END AS commission
FROM transactions;

SELECT 
    CASE 
        WHEN дата > TO_DATE('2023-01-01', 'YYYY-MM-DD') THEN ROUND(сумма)
        ELSE сумма
    END AS итоговая_сумма
FROM таблица;


WITH BaseAmounts AS (
  SELECT
    k.row_id as row_id_lw,
    -- вычисляем сумму иска в рублях один раз для дальнейшего использования
    (nvl(k.EXCHANGE_RATE, 0) * (nvl(k.LGL_BASE_AMOUNT, 0) +
                                nvl(k.LGL_PERCENT, 0) +
                                nvl(k.LGL_COMISSION_NEW, 0) +
                                nvl(k.LGL_OTHER_COST_AMOUNT, 0) +
                                nvl(k.LGL_OTHER_PENALTIES, 0) +
                                nvl(k.lgl_base_penalty, 0) +
                                nvl(k.lgl_percent_penalty, 0))) AS SUMMA_ISK_RUR
  FROM siebel.CX_LEGAL_WORK k
)
SELECT 
  b.row_id_lw,
  -- оптимизированное вычисление комиссии
  CASE
    WHEN b.SUMMA_ISK_RUR <= 20000 THEN LEAST(0.04 * b.SUMMA_ISK_RUR, 400)
    WHEN b.SUMMA_ISK_RUR <= 100000 THEN 800 + 0.03 * (b.SUMMA_ISK_RUR - 20000)
    WHEN b.SUMMA_ISK_RUR <= 200000 THEN 3200 + 0.02 * (b.SUMMA_ISK_RUR - 100000)
    WHEN b.SUMMA_ISK_RUR <= 1000000 THEN 5200 + 0.01 * (b.SUMMA_ISK_RUR - 200000)
    ELSE LEAST(13200 + 0.005 * (b.SUMMA_ISK_RUR - 1000000), 60000)
  END AS GP_RUR
FROM BaseAmounts b;


SELECT * FROM v$session WHERE audsid = USERENV('SESSIONID');
SELECT name, value FROM v$parameter;
SELECT * FROM v$ses_optimizer_env WHERE sid = SYS_CONTEXT('USERENV', 'SID');
SELECT * FROM v$session WHERE sid = SYS_CONTEXT('USERENV', 'SID');
SELECT * FROM nls_session_parameters;



Comments

Popular posts from this blog

crypto