pl/sql显示今天星期几,是"工作日"还是"休息日"。
时间: 2023-05-27 07:07:09 浏览: 66
以下是一个 PL/SQL 程序,可以显示今天星期几,并判断是否是工作日或休息日:
```
DECLARE
day_of_week VARCHAR2(10);
BEGIN
day_of_week := TO_CHAR(SYSDATE, 'DAY');
IF day_of_week IN ('SATURDAY', 'SUNDAY') THEN
DBMS_OUTPUT.PUT_LINE('Today is ' || day_of_week || ', it is a weekend.');
ELSE
DBMS_OUTPUT.PUT_LINE('Today is ' || day_of_week || ', it is a workday.');
END IF;
END;
```
这个程序首先使用 `TO_CHAR` 函数从系统日期中提取出星期几,然后使用一个 `IF` 语句判断是否是周末。如果是周末,就输出“休息日”,否则输出“工作日”。最后通过 `DBMS_OUTPUT.PUT_LINE` 函数将结果显示出来。
相关问题
请用pl/sql 写一个ebs bom 工作日的脚本
以下是一个示例的 PL/SQL 脚本,用于查询 EBS BOM 工作日:
```sql
DECLARE
CURSOR bom_cur IS
SELECT organization_id, assembly_item_id, effective_date
FROM bom_calendar_assignments
WHERE organization_id = <ORGANIZATION_ID>
AND assembly_item_id = <ASSEMBLY_ITEM_ID>;
lv_effective_date DATE;
lv_workday VARCHAR2(1);
BEGIN
FOR bom_rec IN bom_cur LOOP
lv_effective_date := bom_rec.effective_date;
SELECT workday_flag
INTO lv_workday
FROM bom_calendar_dates
WHERE calendar_code = 'WORK'
AND calendar_date = lv_effective_date;
IF lv_workday = 'Y' THEN
DBMS_OUTPUT.PUT_LINE('Effective Date ' || lv_effective_date || ' is a workday');
ELSE
DBMS_OUTPUT.PUT_LINE('Effective Date ' || lv_effective_date || ' is NOT a workday');
END IF;
END LOOP;
END;
```
请注意将 `<ORGANIZATION_ID>` 和 `<ASSEMBLY_ITEM_ID>` 替换为实际的值。此脚本使用 `bom_calendar_assignments` 和 `bom_calendar_dates` 表来查询指定组织和装配件的 BOM 工作日。它将循环遍历每个日期,并输出日期是否为工作日的信息。
pl/sql显示游标 插入记录
下面是一个示例代码,展示如何使用PL/SQL显示游标并插入记录:
DECLARE
CURSOR emp_cur IS
SELECT employee_id, first_name, last_name
FROM employees
WHERE department_id = 80;
v_emp_id employees.employee_id%TYPE;
v_first_name employees.first_name%TYPE;
v_last_name employees.last_name%TYPE;
BEGIN
OPEN emp_cur;
LOOP
FETCH emp_cur INTO v_emp_id, v_first_name, v_last_name;
EXIT WHEN emp_cur%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(v_emp_id || ' ' || v_first_name || ' ' || v_last_name);
INSERT INTO new_employees(employee_id, first_name, last_name)
VALUES(v_emp_id, v_first_name, v_last_name);
END LOOP;
CLOSE emp_cur;
END;
在这个示例中,我们定义了一个游标emp_cur,它选择了员工表中部门ID为80的员工的ID、名和姓。然后我们使用OPEN语句打开游标,LOOP和FETCH语句循环遍历游标中的记录,并将记录的每个字段存储到对应的变量中。我们还使用DBMS_OUTPUT.PUT_LINE语句在控制台上显示每个员工的信息。最后,我们使用INSERT语句将记录插入到新员工表中,并使用CLOSE语句关闭游标。
请注意,此代码仅供示例目的。实际上,您可能需要更多的错误处理和逻辑来处理游标中的记录。