Search notes:

PLW-07204: conversion away from column type may result in sub-optimal query plan

alter session set plsql_warnings = 'enable:all';

create table tq84_plw_07204_tab (
    id   integer primary key,
    txt  varchar2(10),
    val  number
);

create or replace function tq84_plw_07204_fnc (
   p_txt  in number                               -- <== p_txt should be declared as varchar2, not as number
) return number
   authid definer
is
   ret number;
begin
   select
      sum(val) into ret
   from
      tq84_plw_07204_tab
   where
      txt = p_txt;                                -- <== PLW-07204: conversion away from column type ... 

   return ret;
end tq84_plw_07204_fnc;
/


drop function tq84_plw_07204_fnc;
drop table    tq84_plw_072

TRUNC(date)

PLW-07204 is also caused if trunc() is applied on a date column:
create table tq84_tab (
   val number,
   txt varchar2(10),
   dt  date not null
);

create or replace function tq84_func(p_dt date) return number
   authid definer
as
   ret number;
begin
   select
      val into ret
   from
      tq84_tab
   where
      trunc(dt, 'mm') = p_dt;
      
   return ret;
end tq84_func;
/

show errors
explain plan for
select
   val
from
   tq84_tab
where
   trunc(dt, 'mm') = trunc(sysdate, 'mm');

select * from table(dbms_xplan.display(format=>'basic predicate'));
--
-- --------------------------------------
-- | Id  | Operation         | Name     |
-- --------------------------------------
-- |   0 | SELECT STATEMENT  |          |
-- |*  1 |  TABLE ACCESS FULL| TQ84_TAB |
-- --------------------------------------
--  
-- Predicate Information (identified by operation id):
-- ---------------------------------------------------
--  
--    1 - filter(TRUNC(INTERNAL_FUNCTION("DT"),'fmmm')=TRUNC(SYSDATE@!,'fmmm'))
drop table    tq84_tab;
drop function tq84_func;

See also

Execution plans
Datatypes
Oracle PL/SQL: Errors and warnings

Index