如何从table 中获取数据到特定id 搜索plsql 的在线?
How to fetch data from a table onto online which a specific id search plsql?
我有一个程序,用户可以输入 "student id" 来搜索并查看那个人的详细信息。我知道这个 inst 是正确的,我有更多的语法要写,但到目前为止,这就是我所拥有的:-
请注意我已经声明了所有变量并且我的 table 列名称和类型都是正确的。我还没有 运行 代码,因为我确信我还遗漏了一些东西。所以请帮助。我在 plsql 中为 oracle 编写蟾蜍代码。
以下代码用于获取数据并将其放到他们特定的在线领域。
BEGIN
-- fetching data from table 'unsus'
IF EXISTS SELECT UNSUS_STUDENT_NO student_no,
UNSUS_STUDENT_NAME name,
UNSUS_SUSPEND_ACCOUNT suspend_acc,
UNSUS_UNSUSPEND_DATE unsus_date,
UNSUS_USER_ID user_id
FROM SATURN.UNSUS
WHERE UNSUS_SUSPEND_NO = ('000123456');
-- opening table rows (form based)
twbkfrmt.P_TableRowOpen;
twbkfrmt.P_TableData ('Student ID');
twbkfrmt.P_TableData ('Full Name');
twbkfrmt.P_TableData ('Suspended ?');
twbkfrmt.P_TableData ('Unsuspension Date');
twbkfrmt.P_TableData ('Added On ?');
twbkfrmt.P_TableData ('Altered By');
twbkfrmt.P_TableRowOpen;
-- table data adding onto form fields
twbkfrmt.p_TableDataWhite (HTF.formtext (
cname => '',
csize => 25,
cmaxlength => 9,
cvalue => student_no,
cattributes => 'style="font-size:12px" readonly ' || disabled));
twbkfrmt.p_TableDataWhite (HTF.formtext (
cname => '',
csize => 60,
cmaxlength => 60,
cvalue => name,
cattributes => 'style="font-size:12px" readonly ' || disabled));
twbkfrmt.p_TableDataWhite (HTF.formtext (
cname => '',
csize => 15,
cmaxlength => 5,
cvalue => suspend_acc,
cattributes => 'style="font-size:12px" readonly ' || disabled));
twbkfrmt.p_TableDataWhite (HTF.formtext (
cname => '',
csize => 20,
cmaxlength => 15,
cvalue => unsus_date,
cattributes => 'style="font-size:12px" readonly ' || disabled));
twbkfrmt.p_TableDataWhite (HTF.formtext (
cname => '',
csize => 20,
cmaxlength => 15,
--cvalue => ,
cattributes => 'style="font-size:12px" readonly ' || disabled));
twbkfrmt.p_TableDataWhite (HTF.formtext (
cname => '',
csize => 30,
cmaxlength => 30,
cvalue => user_id,
cattributes => 'style="font-size:12px" readonly ' || disabled));
只需要检查集合是否存在。
SELECT COUNT(UNSUS_STUDENT_NO) INTO studentCount FROM SATURN.UNSUS
WHERE UNSUS_SUSPEND_NO = ('000123456');
IF studentCount > 0 THEN
-- Insert all logic here.
END IF;
有几种方法可以解决这个问题。标准方法,而且速度很快,就是 select 数据并有一个 no_data_found 异常。我希望您没有在所有列名称前加上 table 名称,恕我直言,这不是好的做法。
DECLARE
l_student_no saturn.unsus.student_no%TYPE;
l_student_name saturn.unsus.student_name%TYPE;
l_suspend_account saturn.unsus.suspend_account%TYPE;
BEGIN
SELECT student_no, student_name, suspend_account
INTO l_student_no, l_student_name, l_suspend_account
FROM saturn.unsus
WHERE suspend_no = ('000123456');
-- you have your data, do your HTML formatting.
twbkfrmt.p_tabledatawhite (
HTF.formtext (
cname => ''
, csize => 25
, cmaxlength => 9
, cvalue => l_student_no
, cattributes => 'style="font-size:12px" readonly ' || disabled
)
);
-- ...
EXCEPTION
WHEN NO_DATA_FOUND
THEN
-- code jumps to here when the suspend_no is not found
-- the null means just ignore no_data_found
NULL;
END;
我有一个程序,用户可以输入 "student id" 来搜索并查看那个人的详细信息。我知道这个 inst 是正确的,我有更多的语法要写,但到目前为止,这就是我所拥有的:-
请注意我已经声明了所有变量并且我的 table 列名称和类型都是正确的。我还没有 运行 代码,因为我确信我还遗漏了一些东西。所以请帮助。我在 plsql 中为 oracle 编写蟾蜍代码。
以下代码用于获取数据并将其放到他们特定的在线领域。
BEGIN
-- fetching data from table 'unsus'
IF EXISTS SELECT UNSUS_STUDENT_NO student_no,
UNSUS_STUDENT_NAME name,
UNSUS_SUSPEND_ACCOUNT suspend_acc,
UNSUS_UNSUSPEND_DATE unsus_date,
UNSUS_USER_ID user_id
FROM SATURN.UNSUS
WHERE UNSUS_SUSPEND_NO = ('000123456');
-- opening table rows (form based)
twbkfrmt.P_TableRowOpen;
twbkfrmt.P_TableData ('Student ID');
twbkfrmt.P_TableData ('Full Name');
twbkfrmt.P_TableData ('Suspended ?');
twbkfrmt.P_TableData ('Unsuspension Date');
twbkfrmt.P_TableData ('Added On ?');
twbkfrmt.P_TableData ('Altered By');
twbkfrmt.P_TableRowOpen;
-- table data adding onto form fields
twbkfrmt.p_TableDataWhite (HTF.formtext (
cname => '',
csize => 25,
cmaxlength => 9,
cvalue => student_no,
cattributes => 'style="font-size:12px" readonly ' || disabled));
twbkfrmt.p_TableDataWhite (HTF.formtext (
cname => '',
csize => 60,
cmaxlength => 60,
cvalue => name,
cattributes => 'style="font-size:12px" readonly ' || disabled));
twbkfrmt.p_TableDataWhite (HTF.formtext (
cname => '',
csize => 15,
cmaxlength => 5,
cvalue => suspend_acc,
cattributes => 'style="font-size:12px" readonly ' || disabled));
twbkfrmt.p_TableDataWhite (HTF.formtext (
cname => '',
csize => 20,
cmaxlength => 15,
cvalue => unsus_date,
cattributes => 'style="font-size:12px" readonly ' || disabled));
twbkfrmt.p_TableDataWhite (HTF.formtext (
cname => '',
csize => 20,
cmaxlength => 15,
--cvalue => ,
cattributes => 'style="font-size:12px" readonly ' || disabled));
twbkfrmt.p_TableDataWhite (HTF.formtext (
cname => '',
csize => 30,
cmaxlength => 30,
cvalue => user_id,
cattributes => 'style="font-size:12px" readonly ' || disabled));
只需要检查集合是否存在。
SELECT COUNT(UNSUS_STUDENT_NO) INTO studentCount FROM SATURN.UNSUS
WHERE UNSUS_SUSPEND_NO = ('000123456');
IF studentCount > 0 THEN
-- Insert all logic here.
END IF;
有几种方法可以解决这个问题。标准方法,而且速度很快,就是 select 数据并有一个 no_data_found 异常。我希望您没有在所有列名称前加上 table 名称,恕我直言,这不是好的做法。
DECLARE
l_student_no saturn.unsus.student_no%TYPE;
l_student_name saturn.unsus.student_name%TYPE;
l_suspend_account saturn.unsus.suspend_account%TYPE;
BEGIN
SELECT student_no, student_name, suspend_account
INTO l_student_no, l_student_name, l_suspend_account
FROM saturn.unsus
WHERE suspend_no = ('000123456');
-- you have your data, do your HTML formatting.
twbkfrmt.p_tabledatawhite (
HTF.formtext (
cname => ''
, csize => 25
, cmaxlength => 9
, cvalue => l_student_no
, cattributes => 'style="font-size:12px" readonly ' || disabled
)
);
-- ...
EXCEPTION
WHEN NO_DATA_FOUND
THEN
-- code jumps to here when the suspend_no is not found
-- the null means just ignore no_data_found
NULL;
END;