我有这个简单的 HTML 文档
<input type="text" id="my_text" onkeypress="valid_numbers(event);" size="30"/>
<script type="javascript">
function valid_numbers(e)
{
var key=e.which || e.KeyCode;
if ( key >=48 && key <= 57)
// to check whether pressed key is number or not
return true;
else return false;
}
</script>
Run Code Online (Sandbox Code Playgroud)
我想要的是:
onkeypressmy_text如果按下的键是数字则允许否则拒绝写入字符。
但是上面的代码不起作用,my_text元素接受任何字符,上面的代码有什么问题?!...
请帮助!..
我正在使用 oracle forms 6i,我想使用 pl/sql 代码以编程方式连接到数据库
当表单像这样运行时,我不希望最终用户插入用户名、密码和数据库名称:
我使用了这样的预成型触发器:
begin
execute 'connect to hr/hr@yemensoft';
end;
Run Code Online (Sandbox Code Playgroud)
但它返回错误;
error 103 at line2, column 10 encountered the symbol "connect to hr/hr@yemensoft" when expecting one of the following: :=.(@%;
我正在使用 oracle 表单 6i。
只是我将数据库块与这些项目一起使用:
Employees: employee_id , job_id , department_id , manager_id
Run Code Online (Sandbox Code Playgroud)
注意:员工是数据块名称。
例如:当最终用户点击进入查询按钮并在department_id项目中写入50然后点击执行查询按钮时;数据块将返回部门 50 中的所有员工。
我的问题是:如何获得 oracle 表单在返回所需数据时生成的 WHERE CLAUSE?...
我在 pre-query trigger
:parameters.whr:=get_block_property('employees',default_where);
Run Code Online (Sandbox Code Playgroud)
但它没有返回任何结果
我想创建一个 PL/SQL 函数,它传递一个表名和一个条件,并返回比条件在该表上满足的行数。
我创建了函数:
CREATE OR REPLACE FUNCTION CHECK_EXISTS
(TABLE_NAME VARCHAR2, CONDITION VARCHAR2) RETURN NUMBER AS
VAL NUMBER;
SQL_CODE VARCHAR2(200):='SELECT COUNT (*) INTO VAL FROM :TABLE_NAME WHERE
:CONDITION';
BEGIN
EXECUTE IMMEDIATE SQL_CODE USING TABLE_NAME ,CONDITION;
RETURN VAL;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN 0;
END;
Run Code Online (Sandbox Code Playgroud)
该函数已成功创建,但是当我尝试使用此代码使用它时:
BEGIN DBMS_OUTPUT.PUT_LINE(CHECK_EXISTS('EMPLOYEES' ,'DEPARTMENT_ID=50')); END;
Run Code Online (Sandbox Code Playgroud)
我收到异常:ORA-00903:表名无效。
我有这个匿名 PL/SQL 块,它计算并打印从表中返回的值。
DECLARE
U_ID NUMBER :=39;
RETAIL BINARY_FLOAT:=1;
FLAG NUMBER;
BEGIN
SELECT NVL(RETAIL_AMOUNT,1),UNIT_ID INTO RETAIL, FLAG FROM UNITS WHERE UNIT_ID=U_ID;
LOOP
SELECT NVL(MAX(UNIT_ID),U_ID) INTO FLAG FROM UNITS WHERE FATHER_ID=FLAG;
IF FLAG=U_ID THEN EXIT; END IF;
SELECT RETAIL* RETAIL_AMOUNT INTO RETAIL FROM UNITS WHERE UNIT_ID=FLAG;
EXIT WHEN FLAG=U_ID;
END LOOP;
DBMS_OUTPUT.PUT_LINE( RETAIL);
END;
Run Code Online (Sandbox Code Playgroud)
这个块工作正常,但我想使用 PL/SQL 函数做同样的事情
我写的函数如下:
CREATE OR REPLACE FUNCTION GET_UNIT_RETAIL(U_ID NUMBER)
RETURN NUMBER
IS
RETAIL BINARY_FLOAT:=1;
FLAG NUMBER;
BEGIN
SELECT NVL(RETAIL_AMOUNT,1),UNIT_ID
INTO RETAIL, FLAG
FROM UNITS
WHERE UNIT_ID=U_ID; …Run Code Online (Sandbox Code Playgroud)