我已经完成了将新记录插入表EMPLOYEES
的任务。我知道如何通过要求用户键入一个值来做到这一点,例如:
INSERT INTO EMPLOYEES (first_name, last_name, email, hire_date, job_id)
VALUES ('&first_name', '&last_name', '&email' ,'&hire_date', 'SA_REP' );
但是,我不想问用户有关email
的问题,而是通过将first_name
输入的第一个字母与该人的last_name
连接起来来自动插入将其数据添加到表中。为此,我认为我必须暂时存储插入的值,或者至少获得对first_name
和last_name
的引用。我尝试在线搜索,但实际上一无所获。您能为我提供此任务的最简单解决方案吗?我正在使用Oracle SQL Developer。
答案 0 :(得分:1)
您可以将其包装在PL / SQL块中,以使用具有正确数据类型的适当变量。这还将确保以正确的格式正确输入date
变量的值。
DECLARE
v_first_name employees.first_name%type := '&first_name';
v_last_name employees.last_name%type := '&last_name';
v_hire_date employees.hire_date%type := TO_DATE('&hire_date_YYYYMMDD','YYYYMMDD');
BEGIN
INSERT INTO EMPLOYEES (first_name, last_name, email, hire_date, job_id)
VALUES (v_first_name, v_last_name,
substr(v_first_name,1,1)||'.'||v_last_name , v_hire_date, 'SA_REP' );
--first letter of the first_name with last name
END;
/
结果
Enter value for first_name: John
Enter value for last_name: Doe
Enter value for hire_date_YYYYMMDD: 20190521
..
..
PL/SQL procedure successfully completed.
答案 1 :(得分:0)
您应该能够做到这一点:
INSERT INTO EMPLOYEES (first_name, last_name, email, hire_date, job_id)
VALUES ('&first_name', '&last_name', '&first_name' || '.' || '&last_name' ,'&hire_date', 'SA_REP' );