在线 Oracle Application Express 中的用户输入
User Input in Oracle Application Express online
在 Oracle Application Express online 上,我希望能够读取用户的输入。
我想写一个 SQL 语句来显示名字以用户输入的字母开头的所有员工。我以为我们写
SELECT * FROM employees
WHERE first_name LIKE '&letter%';
但这行不通。它显示 "no data found".
这个我也试过了,还是不行。这个在我输入任何字母后给出错误信息"ORA-00911: invalid character"。
SELECT * FROM employees
WHERE first_name LIKE :letter%;
我只是一个初学者,当我搜索时,我不明白我的错误是什么。非常感谢您的帮助。
假设 P1_LETTER
是您为用户输入字母而创建的文本字段页面项的名称,您需要
SELECT *
FROM employees
WHERE first_name LIKE :p1_letter || '%'
或
SELECT *
FROM employees
WHERE substr(first_name,1,1) = :p1_letter
请记住,字符串比较区分大小写。因此,如果用户输入 "j",它们将不会匹配到 "Justin"。它们只会匹配 "justin"。您可能希望将表达式的两边都转换为小写或大写,以便进行不区分大小写的比较。
SELECT *
FROM employees
WHERE lower(first_name) LIKE lower(:p1_letter) || '%'
我知道有点太晚了,但我最近遇到了同样的问题,我刚刚发现与其使用 &
不如像下面这样尝试 :
,它应该可以工作很好!
SELECT * FROM employees
WHERE first_name LIKE ':letter%';
在 Oracle Application Express online 上,我希望能够读取用户的输入。
我想写一个 SQL 语句来显示名字以用户输入的字母开头的所有员工。我以为我们写
SELECT * FROM employees
WHERE first_name LIKE '&letter%';
但这行不通。它显示 "no data found".
这个我也试过了,还是不行。这个在我输入任何字母后给出错误信息"ORA-00911: invalid character"。
SELECT * FROM employees
WHERE first_name LIKE :letter%;
我只是一个初学者,当我搜索时,我不明白我的错误是什么。非常感谢您的帮助。
假设 P1_LETTER
是您为用户输入字母而创建的文本字段页面项的名称,您需要
SELECT *
FROM employees
WHERE first_name LIKE :p1_letter || '%'
或
SELECT *
FROM employees
WHERE substr(first_name,1,1) = :p1_letter
请记住,字符串比较区分大小写。因此,如果用户输入 "j",它们将不会匹配到 "Justin"。它们只会匹配 "justin"。您可能希望将表达式的两边都转换为小写或大写,以便进行不区分大小写的比较。
SELECT *
FROM employees
WHERE lower(first_name) LIKE lower(:p1_letter) || '%'
我知道有点太晚了,但我最近遇到了同样的问题,我刚刚发现与其使用 &
不如像下面这样尝试 :
,它应该可以工作很好!
SELECT * FROM employees
WHERE first_name LIKE ':letter%';