如何从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;