Question: Hello I am new to nodejs and mongodb.

I have 3 models:

1. "user" with fields "name phone"
2. "Shop" with fields "name, address"
3. "Member" with fields "shop user status". (shop and user hold the "id" of respective collections).

Now when I create "shops" api to fetch all shop, then I need to add extra field "isShopJoined" which is not part of the model. This extra field will true if user who see that shop is joined it otherwise it will be false.

The problem happens when I share my model with frontend developers like Android/iOS and others, They will not aware of that extra field until they see the API response.

So is it ok if I add extra field in shops listing which is not part of the model? Or do I need to add that extra field in model?

Answer: 
Remove semi-colon at the end of the `hire` procedure in package body:

```
CREATE OR REPLACE PACKAGE BODY hr
AS
   PROCEDURE hire (enum   IN NUMBER,
                   ename  IN VARCHAR2,
                   sal    IN NUMBER,
                   erole  IN VARCHAR2,
                   age    IN NUMBER);            --> here
   IS
   ...

```

Once you do that, package and its body are successfully compiled:

```
SQL> CREATE OR REPLACE PACKAGE BODY hr
  2  AS
  3     PROCEDURE hire (enum   IN NUMBER,
  4                     ename  IN VARCHAR2,
  5                     sal    IN NUMBER,
  6                     erole  IN VARCHAR2,
  7                     age    IN NUMBER)
  8     IS
  9     BEGIN
 10        INSERT INTO employee (employee_id,
 11                              employee_name,
 12                              employee_sal,
 13                              employee_role,
 14                              employee_age)
 15             VALUES (enum,
 16                     ename,
 17                     sal,
 18                     erole,
 19                     age);
 20
 21        COMMIT;
 22     END hire;
 23
 24     PROCEDURE fire (enum IN NUMBER)
 25     IS
 26     BEGIN
 27        DELETE FROM employee
 28              WHERE employee_id = enum;
 29
 30        COMMIT;
 31     END fire;
 32  END;
 33  /

Package body created.

SQL>

```
Client tools typically need something to separate two PL/SQL blocks, such as a line containing a slash character between the first `END;` and `CREATE OR REPLACE PACKAGE BODY`, so this

```
end;

create or replace package body hr

```

needs to become

```
end;
/

create or replace package body hr

```

otherwise it all gets treated as a single block of code with `CREATE` at line 9, which then won't compile because for one thing PL/SQL has no `CREATE` keyword.

For production code, it is considered good practice to maintain the package header and body in two separate version-controlled source files.