在存储过程里面执行 这句话 
  SELECT * FROM DATA_S3940 WHERE PID=P_PID AND OUTSIDEID=P_OUTSIDEID AND INSIDEID=P_INSIDEID;
是可以 正常运行
其中 PID OUTSIDEID INSIDEID 为IN参数但是我这样 
   
  SELECT * FROM DATA_S||P_CID WHERE PID=P_PID AND OUTSIDEID=P_OUTSIDEID AND INSIDEID=P_INSIDEID;P_CID 也为IN参数 
他就报错 错误提示为 命令未正确结束。有什么方法可以快速解决 
声明一点: 这样的定义一个字符串的方式是可以解决这问题的,但是我想知道有没有其他的方法来解决这个问题,
str varchar(100) :=   'SELECT * FROM DATA_S' || P_CID || ' WHERE PID=:P_PID AND OUTSIDEID=:P_OUTSIDEID AND  INSIDEID=:P_INSIDEID';
execute immediate str using PID,OUTSIDEID,INSIDEID; 因为我存储过程里面有很多SQL的语句 ,我不想把所有的SQL都用字符串拼接在一个个调用,谢谢大家,很急。