所以首先我需要創建一個表(UserPermissions):試圖獲得的文件數用戶名可以查看
CREATE TABLE UserPermissions
(
Document varchar2(15),
UserName varchar(15)
);
INSERT INTO UserPermissions
Values('Policy', 'SYSTEM');
INSERT INTO UserPermissions
Values('Menu', 'JDOW');
INSERT INTO UserPermissions
Values('W2', 'USAM');
INSERT INTO UserPermissions
Values('Permissions', 'SYSTEM');
INSERT INTO UserPermissions
Values('W2', ‘JDOW');
INSERT INTO UserPermissions
Values('Form 1040', 'USAM');
INSERT INTO UserPermissions
Values('Policy', 'JDOW');
INSERT INTO UserPermissions
Values('W2', 'SYSTEM');
然後,寫一個PL/SQL存儲函數採用用戶名作爲輸入並返回號碼用戶有權查看的文檔。如果用戶名不在表格中,則您的過程應返回「未找到用戶」。 到目前爲止,這是我:
CREATE or REPLACE FUNCTION user_documents_func (UserName varchar2)
RETURN int AS
num_views INT;
BEGIN
SET num_views = (select count(*) from userpermissions);
IF num_views > 0 THEN
RETURN UserName || ' can view ' || num_views || ' document(s).';
ELSE
Dbms_output.put_line('Username not found!');
END IF;
END;
/
SET SERVEROUTPUT ON;
我在SELECT語句「缺失或無效選項」得到一個錯誤。
我已經改變了
SET num_views = (select count(*) from userpermissions);
要:
SELECT num_views = count(*) from userpermissions WHERE UserName;
,並宣佈NUM_VIEWS這樣
CREATE or REPLACE FUNCTION user_documents_func (UserName varchar2, num_views int)
現在我得到的錯誤 「FROM關鍵字未找到預期」
返回「未找到用戶名」並將其打印出來有區別。 – 2015-02-07 15:52:29