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
Post a Comment